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__执行了
    
  • 相关阅读:
    系统引导管理器GRUB,为初学者指南
    PHPBB安装
    python的装饰器
    PIL的问题解决
    python的小技巧
    强烈推荐instagram的ppt
    新的一天
    OpenStack介绍
    ansible自动化运维工具
    .net连oracle的问题
  • 原文地址:https://www.cnblogs.com/ChiRou/p/14210009.html
Copyright © 2011-2022 走看看