Loading

构造方法和析构方法

构造方法

__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__执行了
posted @ 2020-12-30 10:06  吃了好多肉  阅读(97)  评论(0编辑  收藏  举报