构造方法和析构方法
构造方法
__init__(self)
类名加括号,实例化对象时会触发执行,通常用来初始化赋值。可查看这篇__init__方法
析构方法
__del__(self)
当程序运行结束,对象在内存中被回收时,会触发执行。使用del删除对象时也会触发执行,通常用来进行一些资源回收的操作。
如果产生的对象仅仅只是python程序级别的(用户级),那么无需定义__del__,如果产生的对象的同时还会向操作系统发起系统调用,即一个对象有用户级与内核级两种资源,比如(打开一个文件,创建一个数据库链接),则必须在清除对象的同时回收系统资源,这就用到了__del__
class ProcessFile:
def __init__(self, path):
self.f = open(path, 'at', encoding='utf-8')
def write(self,content):
self.f.write(content)
def __del__(self):
print('__del__执行了')
self.f.close() # 删除对象时会关闭文件.
p = ProcessFile('a.txt')
p.write('xxxx')
del p
p1 = ProcessFile('b.txt')
结果为:
__del__执行了
__del__执行了