首页 > 解决方案 > 我的类在 Python shell 中创建后立即删除

问题描述

我有以下课程:

class A:

    def __init__(**kwargs):
        pass

    def __del__(self):
        # some serious things happens here
        print("class was deleted")

这就是我尝试在 shell 中测试它的方式:

>>> a = A(param="value1")
>>> a = A(param="value2")
class was deleted

为什么我会收到有关删除实例的消息?我只想测试使用不同参数创建的类。方法中有一些昂贵的例程编码,__del__不想被错误地执行。

标签: python

解决方案


发生这种行为a是因为在此处重新分配了变量。Python 从内存中删除它的旧值,因此__del__将调用该方法。为了避免这种行为,您应该将新创建分配给不同的变量:

a1 = ...
a2 = ...

推荐阅读