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 に答える