今天學習Python類的類變量時,遇到下面的錯誤.
class Person:
p1 = Person('person1')
p1.sayHello()
xp = Person('xp')
xp.sayHello()
xp.howMany()
出現如下錯誤:
Exception AttributeError: "'NoneType' object has no attribute 'population'" in <bound method Person.__del__ of <__main__.Person instance at 0xb734040c>> ignored
xp says bye.
Exception AttributeError: "'NoneType' object has no attribute 'population'" in <bound method Person.__del__ of <__main__.Person instance at 0xb73403ec>> ignored
debian72:~/dw/pythonTest# Exception AttributeError: "'NoneType' object has no attribute 'population'" in <bound method Person.__del__ of <__main__.Person instance at 0xb734040c
原因如下:
At interpreter shutdown, the module's global variables are set to None before the module itself is released.
__del__ methods may be called in those precaries circumstances, and should not rely on any global state.
將__del__方法中對類變量的訪問方式改為如下即可:
def __del__(self):
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。