首页 > 技术文章 > _del_()方法

FlameLuo 2018-10-01 20:47 原文

  创建对象后,python解释器默认调用_init_()方法;

  当删除一个对象后,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(“波斯猫”)
cat2 =  cat
cat3 =  cat

print("----马上  删除cat对象")
del cat
print("----马上  删除cat2对象")
del cat2
print("---马上 删除cat3对象")
del cat3

print(“程序2秒后结束”)
time.sleep(2)

总结:

  *当有一个班里保存了对象的引用时,此对象的引用计数就会增加1

  *当使用del删除变量指向的对象时,如果对象的引用计数不会1,比如3,那么此时只会让这个用户引用计数减1,即变为2,当再次调用del时,变为1,如果再调用1次del,此时会真的把对象删除。

推荐阅读