zoukankan      html  css  js  c++  java
  • 构造方法和析构方法

    构造方法

    __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__执行了
    
  • 相关阅读:
    mysql 取出每科成绩前两名
    mysql 数据库以及sql 的优化
    Twitter开源分布式自增ID算法snowflake
    SVN 冲突
    VUE 入门 1 列表、if判断 、双向绑定
    Roadblock
    最大子序和
    SOLDIERS
    绿豆蛙的归宿
    Place the Robots
  • 原文地址:https://www.cnblogs.com/ChiRou/p/14210009.html
Copyright © 2011-2022 走看看