一、构造方法
1、构造方法是Python类中的内置方法之一,它的方法名为__init__,在创建一个类对象时会自动执行,负责完成新创建对象的初始化工作。
2、只有一个参数的构造方法示例
class Student: #定义Student类 def __init__(self): #定义构造方法 print('构造方法被调用!') self.name='未知' #将self对应对象的name属性赋值为“未知” def PrintInfo(self): #定义普通方法PrintInfo print('姓名:%s'%self.name) #输出姓名信息 if __name__=='__main__': stu=Student() #创建Student类对象stu,自动执行构造方法 stu.PrintInfo() #通过stu对象调用PrintInfo方法
构造方法被调用!
姓名:未知
3、带默认参数的构造方法示例
class Student: #定义Student类 def __init__(self,name='未知'): #定义构造方法 print('构造方法被调用!') self.name=name #将self对应对象的name属性赋为形 #参name的值 def PrintInfo(self): #定义普通方法PrintInfo print('姓名:%s'%self.name) #输出姓名信息 if __name__=='__main__': stu1=Student() #创建Student类对象stu1,自动执行构 #造方法 stu2=Student('李晓明') stu1.PrintInfo() #通过stu1对象调用PrintInfo方法 stu2.PrintInfo() #通过stu1对象调用PrintInfo方法
构造方法被调用!
构造方法被调用!
姓名:未知
姓名:李晓明
二、析构方法
1、析构方法是类的另一个内置方法,它的方法名为__del__,在销毁一个类对象时会自动执行,负责完成待销毁对象的资源清理工作,如关闭文件等。
2、类对象销毁有如下三种情况:
(1)局部变量的作用域结束。
(2)使用del删除对象。
(3)程序结束时,程序中的所有对象都将被销毁。
3、析构方法代码示例
class Student: #定义Student类 def __init__(self,name): #定义构造方法 self.name=name #将self对应对象的name属性 #赋值为形参name的值 print('姓名为%s的对象被创建!'%self.name) def __del__(self): #定义析构方法 print('姓名为%s的对象被销毁!'%self.name) def func(name): stu=Student(name) #创建Student类对象stu if __name__=='__main__': stu1=Student('李晓明') #创建Student类对象stu1 stu2=Student('马红') #创建Student类对象stu2 stu3=stu2 del stu2 #使用del删除stu2对象 func('张刚') #调用func函数 del stu3 #使用del删除stu3对象 stu4=Student('刘建') #创建Student类对象stu4
姓名为李晓明的对象被创建!
姓名为马红的对象被创建!
姓名为张刚的对象被创建!
姓名为张刚的对象被销毁!
姓名为马红的对象被销毁!
姓名为刘建的对象被创建!
姓名为李晓明的对象被销毁!
姓名为刘建的对象被销毁!
注意:如果多个变量对应同一片内存空间,则只有这些变量都删除后才会销毁这片内存空间中所保存的对象,也才会自动执行析构方法。
披荆斩棘,仗剑天涯