构造方法 申请一个空间
析构方法 释放一个空间之前执行
某对象借用了操作系统的资源,还要通过析构方法归还回去:文件资源,网络资源
一般不需要我们自己来清理空间,python有自己的垃圾回收机制
class A: pass
a = A()
del a # 对象的删除,不需要我们做
print(a)
#结构
# NameError: name 'a' is not defined
析构方法
先执行了 __del__方法,然后删除了对象的
class A:
def __del__(self): # 析构方法 del A的对象会自动触发这个方法
print("执行我了")
a = A()
del a # 对象的删除,不需要我们做
print(a)
# 结构
# 执行我了
# NameError: name 'a' is not defined
Python在程序执行完成之后,会释放掉过程中产生的所有的空间
class A:
def __del__(self): # 析构方法 del A的对象会自动触发这个方法
print("执行我了")
a = A()
print(a)
#结果
<__main__.A object at 0x00D5CF50>
执行我了
这个有什么用呢?
析构函数一般情况下是去归回/释放一些在创建对象的时候借用的一些资源,如果是python内存级别的资源,一般不需要,解释器会自动帮你删掉。把所有的变量从内