Python中有两个特殊的方法, 一个是构造函数 init , 另一个是析构函数 del ,统称为魔术方法.
构造函数 init ,创建实例对象之后Python会自动执行此方法,把初始化的属性特点放到实例对象里.
构造函数是创建并初始对象属性,那么对象使用完成后,系统是怎么处理这些呢?
这个时候,Python引入了销毁对象功能的析构函数 del ()
析构函数 del 是对象没有被引用时会触发垃圾回收机制,进行内存释放.
python 内置的 del 方法称为析构方法.用于实现对象被销毁时所需的操作.
常见的应用常见如:
析构方法 del ()是可选的,如果不提供,则Python 会在后台提供默认析构函数
如果要显式的调用析构函数,可以使用del关键字: del obj
析构方法的作用是销毁对象的,在python中采用垃圾回收机制.
Python垃圾回收机制核心思想是:
详细说明:
我们主动删除对象调用del 对象;程序运行结束后,python也会自动进行删除其他的对象.
注意:
如果我们重写子类的 del () 方法(父类为非 object 的类),则必须显式调用父类的 del () 方法,这样才能保证在回收子类对象时,其占用的资源(可能包含继承自父类的部分资源)能被彻底释放
我们本期学习了Python内置函数析构函数,用于没有被引用的对象进行回收处理,一般情况下,我们不用刻意去调用,python内部会对进行触发.
好了,全部的本期内容,欢迎大佬们评论区指正,下期见~
__del__()方法
python_del用法:
import time
class Animal(object):
# 初始化方法
# 创建完对象后会自动被调用
def __init__(self, name):
print('__init__方法被调用')
self.__name = name
# 析构方法
# 当对象被删除时,会自动被调用
def __del__(self):
print("__del__方法被调用")
print("%s对象马上被干掉了..."%self.__name)
# 创建对象
dog = Animal("哈皮狗")
# 删除对象
del dog
cat = Animal("波斯猫")
print("---马上 删除cat对象")
del cat
代码示例:
有个方法可以从列表中按给定的索引而不是值来删除一个子项: del 语句.它不同于有返回值的 pop() 方法.语句 del 还可以从列表中删除切片或清空整个列表(我们以前介绍过一个方法是将空列表赋值给列表的切片).例如:
del a[0]
a
del a[:]
[]
del 也可以删除整个变量:
del a
此后再引用命名 a 会引发错误(直到另一个值赋给它为止).我们在后面的内容中可以看到 del 的其它用法.
首先我们要清楚python中的del函数不同于C的free和C◆◆的delete.
由于python都是引用,而python有GC机制,所以,del语句作用在变量上,而不是数据对象上.
我们来看一个例子:
del删除的是变量,而不是数据.
我们再来看:
以上就是土嘎嘎小编大虾米为大家整理的相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!