2019-02-23
阅读量:
738
python如何使用折构函数
当函数fun()被调用时,它创建了一个B类实例,它将自身传递给A类,然后A类设置对B类的引用并产生循环引用。
通常,用于检测这些类型的循环引用的Python的垃圾收集器会将其删除,但在此示例中,使用自定义析构函数将此项标记为“无法收集”。
简单地说,它不知道销毁对象的顺序,因此它会离开它们。因此,如果您的实例涉及循环引用,则只要应用程序运行,它们就会存在内存中。
# Python program to illustrate destructor
class A:
def __init__(self, bb):
self.b = bb
class B:
def __init__(self):
self.a = A(self)
def __del__(self):
print("die")
def fun():
b = B()
fun()
输出:
die






评论(0)


暂无数据
推荐帖子
0条评论
0条评论
0条评论