【发布时间】:2015-12-17 20:42:54
【问题描述】:
我遇到了以下 Python 代码的“AttributeError”:
Def SomeFunc(Self):
....
setattr(Self, "_Some_Attribute", Data)
....
if hasattr(Self, "_Some_Attribute"):
delattr(Self, "_Some_Attribute")
....
在 hasattr 测试为阳性后,立即在 delattr 行上引发 AttributeError。恐慌非常罕见。我会说几百次。
SomeFunc() 可以从多个线程调用。是否有可能在第一个线程测试 hasattr 为阳性后,另一个线程进入 hasattr 和 delattr 以删除“_Some_Attribute”?
【问题讨论】:
-
请发布实际代码。
-
hasattr和delattr都是小写的。投票结束是错字。 -
抱歉打错字了。实际代码是: if hasattr(Self, "_Some_Attribute"): delattr(Self, "_Some_Attribute")
-
在您提到的另一个答案中“恐慌非常罕见。我会说几百次。”这是一个多线程应用程序吗?在您的真实代码中,
hasattr和delattr之间是否有更多可能出现逻辑错误的处理?就目前而言,您的问题无法重现。
标签: python