热线电话:13121318867

登录
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.0000
1
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子