python - 我的类在 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__
不想被错误地执行。
解决方案
发生这种行为a
是因为在此处重新分配了变量。Python 从内存中删除它的旧值,因此__del__
将调用该方法。为了避免这种行为,您应该将新创建分配给不同的变量:
a1 = ...
a2 = ...
推荐阅读
- modelica - 在 Modelica.Electrical.Quasistationary 中绘制时间信号
- python - 在 Python 中由另一个 lambda 函数异步并行调用 Lambda 函数
- jenkins - 更改 Jenkins 安装路径
- docker - 在 Kubernetes 中保持 POD 存活
- python - 如何在Python中找到二维数组中每一列的最小元素
- java - 如何还原地图
> 到地图 > 使用流 - amazon-web-services - `appsync` 是否支持订阅中的 `withFilter`?
- c# - What is difference: AttributeCollection.Contains(TKey) vs AttributeCollection.ContainsKey(TKey)?
- django - 将国际化添加到 Django URL,并在添加的前缀之后添加语言前缀
- python - python中的“PT”格式化时间字符串