我必須定義一個類方法,它刪除該類的實例。
Python - UnboundLocalError:賦值之前引用的局部變量'obj'
class baseClass(object):
def __init__(self):
pass
def fun(self):
print 'Base Class'
class derivedClass(baseClass):
def __init__(self):
super(derivedClass, self).__init__()
def fun(self):
print 'Derived class'
def exitfun(self):
print 'Delete Object Instance'
del obj
obj = derivedClass()
obj.fun()
obj.exitfun()
,我發現了以下錯誤:代碼的骨架爲如下
Traceback (most recent call last):
File "C:\Python27\inheritance_del_instance.py", line 23, in <module>
obj.exitfun()
File "C:\Python27\inheritance_del_instance.py", line 19, in exitfun
del obj
UnboundLocalError: local variable 'obj' referenced before assignment
比調用其他,
del <object>
在主
,是否有備用方法通過其成員函數來刪除類的實例。 在此先感謝!
,我不認爲你想要做什麼是可能的,除了也許去除對應條目'globals'字典中的'self'。但即使如此,對該對象的引用也可能更多,例如在列表或其他字典中。無論如何,你需要什麼? –
'del obj'不起作用,因爲你沒有給'obj'賦值,所以不能直觀地說你正在談論對象本身。 – SuperBiasedMan
@AnandSKumar不完全正確。 CPython使用引用計數;所以一旦引用計數達到0,對象將被刪除。只有在循環引用的情況下,垃圾收集器纔會啓動,並且執行該操作確實是不確定的。 –