这很简单:
import threading as t
t.local().x = 1
print t.local().x
当我运行它时,我明白了:
Traceback (most recent call last):
File "C:\Documents and Settings\e272nk\Desktop\tst.py", line 3, in <module>
print t.local().x
AttributeError: 'thread._local' object has no attribute 'x'
属性赋值似乎工作正常,为什么我无法检索值?
这是Windows XP上的Python v2.7.5。
答案 0 :(得分:3)
您正在创建类local
的实例,在其上设置属性,然后丢弃它。然后在下一行中,您正在创建 local
的另一个实例,并尝试从中打印某个属性。由于您没有在该实例上设置该属性,因此它没有该属性,并且您收到错误。
As shown in the documentation,您应该创建local
的实例并保留它:
import threading as t
locs = t.local()
locs.x = 1
print locs.x