Python析构函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python析构函数相关的知识,希望对你有一定的参考价值。

参考技术A

Python中有两个特殊的方法, 一个是构造函数 init , 另一个是析构函数 del ,统称为魔术方法。

构造函数 init ,创建实例对象之后Python会自动执行此方法,把初始化的属性特点放到实例对象里。

构造函数是创建并初始对象属性,那么对象使用完成后,系统是怎么处理这些呢?

这个时候,Python引入了销毁对象功能的析构函数 del ()

析构函数 del 是对象没有被引用时会触发垃圾回收机制,进行内存释放.

python 内置的 del 方法称为析构方法。用于实现对象被销毁时所需的操作。

常见的应用常见如:

析构方法 del ()是可选的,如果不提供,则Python 会在后台提供默认析构函数

如果要显式的调用析构函数,可以使用del关键字: del obj

析构方法的作用是销毁对象的,在python中采用垃圾回收机制。

Python垃圾回收机制核心思想是:

详细说明:

我们主动删除对象调用del 对象;程序运行结束后,python也会自动进行删除其他的对象。

注意:

如果我们重写子类的 del () 方法(父类为非 object 的类),则必须显式调用父类的 del () 方法,这样才能保证在回收子类对象时,其占用的资源(可能包含继承自父类的部分资源)能被彻底释放

我们本期学习了Python内置函数析构函数,用于没有被引用的对象进行回收处理,一般情况下,我们不用刻意去调用,python内部会对进行触发。

以上是本期内容,欢迎大佬们评论区指正,下期见~

python 之简单聊聊 析构函数和特殊的__call__方法

# -*- coding: utf-8 -*-
"""
Created on Sun Nov 13 23:19:03 2016

@author: toby
"""
#知识点:析构函数和特殊的__call__方法
‘‘‘
析够函数:
其中的“__del__”就是一个析构函数了,当使用del 删除对象时,会调用他本身的析构函数,
另外当对象在某个作用域中调用完毕,在跳出其作用域的同时析构函数也会被调用一次,这
样可以用来释放内存空间。
‘‘‘
class Foo:
    def __init__(self):
        pass
    
    def __del__(self): #析构函数 __del__函数永远是在最后执行
        print ‘销毁‘
        
    def go(self):
        print ‘go‘
              
    def __call__(self): 
        print ‘call‘

f1 = Foo() #实例化对象
f1.go() #执行go方法
f1()    #这里的调用实际上是直接执行__call__方法里面的代码


本文出自 “FA&IT运维-Q群:223843163” 博客,请务必保留此出处http://freshair.blog.51cto.com/8272891/1874289

以上是关于Python析构函数的主要内容,如果未能解决你的问题,请参考以下文章

python中的构造函数和构造函数和析构函数的作用

python析构函数

使用Python定义构造函数和析构函数

python中的构造函数和析构函数

python练习之析构函数(进阶)

python 之简单聊聊 析构函数和特殊的__call__方法