【发布时间】:2020-05-08 21:52:30
【问题描述】:
我有一个关于在程序中间销毁对象和调用析构函数的问题。
例如:
class ABC:
# Initializing
def __init__(self):
print('Constructor Called')
# Destructor
def __del__(self):
print('Destructor called')
obj = ABC()
del obj
# I want destructor to be called here.
# and then print below statement
print("obj deleted")
而是在程序结束时调用析构函数。
任何帮助开发者?
【问题讨论】:
-
当我运行这段代码时,我得到
Constructor Called Destructor called obj deleted -
你没有打电话给
__del__;你使用了del,这可能间接导致__del__被调用。尽管该对象有资格被垃圾收集,但如果出于某种原因将其延迟到程序完成之前我不会感到惊讶,并且退出的解释器不必这样做 任何垃圾收集。__del__根本不应该被调用。
标签: python python-3.x oop memory-management destructor