我想知道程序完成时未调用destrucor(__del__
)。
如何调整__del__
?
例如
class destruct:
def __init__(self, name):
self.name = name
print(f"(initializing {self.name}...)")
def __del__(self):
print(f"(Destroying {self.name} ...)")
test1 = destruct('a')
test2 = destruct('b')
该代码的结果:
(initializing a...)
(initializing b...)
(Destroying a ...) <- I don't want to printing this message
(Destroying b ...) <- I don't want to printing this message
答案 0 :(得分:3)
无论何时删除对象,都将调用__del__
的全部要点。
对于C-Python对象,如果其引用计数器为0,则该对象通常在函数作用域的末尾或程序完成时删除。
如果您不希望出现这种情况,则不要使用__del__
,而要实现其他一些显式机制。
我们可能会建议您提供有关您的确切背景的更多详细信息。
答案 1 :(得分:0)
方法应始终由Python运行时在适当的时间调用。有几次,如果/何时不会发生这种情况:
round_date(date_time, unit = "30 minutes")
,或Windows中的“强制退出” 可能还有其他方式