构造函数和析构函数
admin
2023-07-18 02:02:13
0

构造函数:
当类被调用,实例化的第一步是创建实例对象。在类创建实例对象时会使用构造函数初始化其内部状态。python提供的构造函数是__init__(),这个函数是可选的,没有提供时,系统会默认提供一个无参的构造函数,构造函数形如下列:

class Province:

    memo = "中国的23个省之一"   #是类的字段,是属于类的,不属于对象,这个属于类的静态字段,属于类

    def __init__(self,name,captial,leader):

        self.Name=name               #通过self创建的字段叫做动态字段,不像静态字段,动态字段属于对象
        self.Captial=captial
        self.Leader=leader


XZ=Province("西藏","乌鲁木齐","×××",True)



析构函数:
当使用del删除对象时,会调用他本身的析构函数,另外当对象在某个作用于中调用完毕,在跳出其作用域的同时析构函数也会被调用,这样可以来释放内存空间,析构函数时可选的,如果不提供时,python会使用默认的析构函数,析构函数形如__del__。
显式的调用析构函数,可以使用del关键字:del 对象名
在上面的例子中添加析构函数,如下:

class Province:
    memo = "中国的23个省之一"   #是类的字段,是属于类的,不属于对象,这个属于类的静态字段,属于类
    def __init__(self,name,captial,leader):
        self.Name=name               #通过self创建的字段叫做动态字段,不像静态字段,动态字段属于对象
        self.Captial=captial
        self.Leader=leader

    def __del__(self):
        print "析构函数被调用"            
XZ=Province("西藏","乌鲁木齐","×××",True)
print XZ.Leader
del XZ     #释放对象,之后就不能再访问该对象了
print XZ.Leader

#执行结果如下
×××

析构函数被调用

Traceback (most recent call last):

  File "F:\lvsir\workspace\pystudy-oldboy\oop\xghs.py", line 16, in 

    print XZ

NameError: name 'XZ' is not defined

 

相关内容

热门资讯

矛头指向万斯,以色列谍报界:都... 【文/观察者网 阮佳琪】美国急于从对伊战争中抽身,被特朗普甩脸子的以色列开始各种找补。据《耶路撒冷邮...
一项技术获国家发明专利授权 来源:青海日报 本报格尔木讯 (记者 冉志敏 通讯员 贺昕) 6月5日,从五矿盐湖有限公司传来好消息...
魔都看展丨用无边创意“加载”现... UFO Terminal发起的“加载...计划”步入第三年,油罐艺术公园1号罐正在举办展览“加载…权...
俄总统顾问:美国正试图退出乌克... 据凤凰卫视报道,俄罗斯总统新闻秘书佩斯科夫6月6日表示,就乌克兰问题而言,达成特别军事行动既定目标、...
白龙马申请客户端域名切换方法专... 国家知识产权局信息显示,北京白龙马云行科技有限公司申请一项名为“一种客户端域名切换方法、装置、电子设...
魅族22全面断货,国产智能手机... 作为国产智能手机鼻祖,魅族曾经是多少人心目中的“白月光”?可今年魅族却迎来落幕时刻。魅族今年2月正式...
原创 这... 最近看手机价格,我最大的感受就是:现在买手机真的不能只看谁刚发布。很多新机刚上市时声量很大,价格也很...
经批准,这位考生高考每科可增加... 6月6日下午,极目新闻记者来到巴东县第二高级中学高考考点。因出生时缺氧导致脑瘫的考生小雅(化名),正...
微软官宣智能体硬件:AI时代的... 2026台北国际电脑展(Computex)上,微软接连官宣超20款重磅更新,涉及9款自研模型、与英伟...
汤道生×姚顺雨:腾讯AI下半场... 作者:王聪彬 大会还在进行中,AI已经开始“交作业”了。 在2026腾讯云AI产业应用大会直播期间,...