一、构造方法

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   
姓名为李晓明的对象被创建!
姓名为马红的对象被创建!
姓名为张刚的对象被创建!
姓名为张刚的对象被销毁!
姓名为马红的对象被销毁!
姓名为刘建的对象被创建!
姓名为李晓明的对象被销毁!
姓名为刘建的对象被销毁!
 
注意:如果多个变量对应同一片内存空间,则只有这些变量都删除后才会销毁这片内存空间中所保存的对象,也才会自动执行析构方法。
posted on 2020-12-22 16:50  史振兴  阅读(1722)  评论(0编辑  收藏  举报