(2018-04-02.Python从Zero到One)三、Python基础__3.7.3__del__()方法
上一篇文章为:→3.7.2保护对象的属性__del__()
方法
创建对象后,python解释器默认调用__init__()
方法;
【(2018-04-02.Python从Zero到One)三、Python基础__3.7.3__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 dogcat = Animal("波斯猫")
cat2 = cat
cat3 = catprint("---马上 删除cat对象")
del cat
print("---马上 删除cat2对象")
del cat2
print("---马上 删除cat3对象")
del cat3print("程序2秒钟后结束")
time.sleep(2)
结果:
文章图片
day08_python面向对象02-01.png 总结
- 当有1个变量保存了对象的引用时,此对象的引用计数就会加1
- 当使用del删除变量指向的对象时,如果对象的引用计数不会1,比如3,那么此时只会让这个引用计数减1,即变为2,当再次调用del时,变为1,如果再调用1次del,此时会真的把对象进行删除
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- 一个人的碎碎念
- 我从来不做坏事
- 从蓦然回首到花开在眼前,都是为了更好的明天。
- 西湖游
- 改变自己,先从自我反思开始
- leetcode|leetcode 92. 反转链表 II
- 从我的第一张健身卡谈传统健身房
- 自媒体形势分析
- 操作系统|[译]从内部了解现代浏览器(1)