Python 解释器能否优雅地处理对象实例删除对自身的最后一个引用的情况?
考虑以下(诚然无用的)模块:
all_instances = []
class A(object):
def __init__(self):
global all_instances
all_instances.append(self)
def delete_me(self):
global all_instances
self.context = "I'm still here"
all_instances.remove(self)
print self.context
现在的用法:
import the_module
a = the_module.A()
the_deletion_func = a.delete_me
del a
the_deletion_func()
这仍然会打印I'm still here
,但是 Python 的垃圾收集器是否存在竞争条件,即将收集对象实例?
对对象函数的引用是否节省了时间?
解释器是否保留对当前正在执行其代码的对象的引用,直到它完成?