Dav*_*ver 6 python multithreading
如何清除 Python 实例的所有属性threading.local()?
您可以清除它的底层__dict__:
>>> l = threading.local()
>>> l
<thread._local object at 0x7fe8d5af5fb0>
>>> l.ok = "yes"
>>> l.__dict__
{'ok': 'yes'}
>>> l.__dict__.clear()
>>> l.__dict__
{}
>>> l.ok
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'thread._local' object has no attribute 'ok'
Run Code Online (Sandbox Code Playgroud)
在模块文档中,直接访问__dict__被明确称为与对象交互的有效方式:local_threading_local
线程本地对象支持线程本地数据的管理。如果您想要将数据保留在线程本地,只需创建一个线程本地对象并使用其属性即可:
Run Code Online (Sandbox Code Playgroud)>>> mydata = local() >>> mydata.number = 42 >>> mydata.number 42您还可以访问本地对象的字典:
Run Code Online (Sandbox Code Playgroud)>>> mydata.__dict__ {'number': 42} >>> mydata.__dict__.setdefault('widgets', []) [] >>> mydata.widgets []
| 归档时间: |
|
| 查看次数: |
3267 次 |
| 最近记录: |