python的构造方法作用:

*构造方法是一种特殊方法(init)以两个下划线开头,两个下划线结尾,用于类的初始化。
*如果类中定义了构造方法,在定义对象时会自动调用构造方法
*构造方法通常用来初始化对象属性

构造方法的实例:

  • 无参的构造方法(在定义方法时参数列表中第一个参数需要加上self,程序默认会把对象本身当做参数传给self)
class Student():        
def __init__(self):
self.name = "张三" #这一句是用来初始化对象属性的

def fun(self):
print(self.name)

stu = Student()
stu.fun()


输出结果为:
张三


如果需要改变self.name里面的值可以像下面这样

class Student():
def __init__(self):
self.name = "张三"

def fun(self):
print(self.name)

stu = Student()
stu.name = "王五"
stu.fun()


输出结果为:
王五


  • 有参的构造方法
class Student():
def __init__(self,name,age):
self.name = name
self.age = age

def fun(self):
print("姓名:",self.name)
print("年龄:",self.age)

stu = Student('张三',19)
stu.fun()


输出结果为:
姓名: 张三
年龄: 19


在初始化时可以给属性添加默认值如下

class Student():
def __init__(self,name="张三",age=18):
self.name = name
self.age = age

def fun(self):
print("姓名:",self.name)
print("年龄:",self.age)

stu1 = Student()
stu1.fun()
stu2 = Student('李四',19)
stu2.fun()


输出结果为:
姓名: 张三
年龄: 18
姓名: 李四
年龄: 19


python的析构方法作用:

*析构方法的构成和构造方法是一样的(del),作用是在一个对象调用完成后,会将对象释放掉,不在使用

析构方法的实例

class Student():
def __init__(self,name,age):
self.name = name
self.age = age
def __del__(self):
print("对象已被清理")

stu1 = Student('李四',19)
print(stu1.name)
print(stu1.age)
del stu1
print(stu1.name)
print(stu1.age)


输出结果为:
李四
19
对象已被清理 #这里提示有关李四的对象 stu1 已经被清理,再去调用 stu1 就会报错一下就是报错内容
Traceback (most recent call last):
File "E:\Python\stu.py", line 12, in
print(stu1.name)
NameError: name 'stu1' is not defined #报错原因 stu1 对象没有找到