通过学习,发现了Python的对象在销毁之前可以传出一些数据,使得对象以另一种方式存活下来,下面几行代码简单实现一下。
class Wife:
def __init__(self,say):
self.say = say
def __del__(self):
global hp
hp = self
life = Wife("当时只道是寻常!")
life
# <__main__.Wife object at 0x0000023571969400>
life.say
# '当时只道是寻常!'
del life
life
'''
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
life
NameError: name 'life' is not defined
'''
hp
# <__main__.Wife object at 0x0000023571969400>
hp.say
# '当时只道是寻常!'
对于实例对象life当我们销毁它的时候,它的生命得到了终止,但是它却借助全局变量hp存活了下来, 对此我是大为震惊,(虽然在Python中使用global定义全局变量是一种不好的习惯),这里我们利用__del__()方法在对象销毁之前将实例对象赋值给了全局变量hp,怎么有种第三者的感觉。不管了,复活吧我的爱人!!