1

这很简单:

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。

4

1 回答 1

4

您正在创建 class 的实例,在local其上设置属性,然后丢弃它。然后在下一行中,您将创建另一个实例local并尝试从中打印某个属性。由于您没有在该实例上设置属性,因此它没有它,并且您会收到错误消息。

如文档中所示,您应该创建一个实例local并保留它:

import threading as t

locs = t.local()
locs.x = 1
print locs.x
于 2013-07-17T22:38:43.447 回答