我有一个非常简单的问题:
myThread = Thread(target=TestTarget, args=(1, Event(),))
是否可以仅使用变量
myThread
获取参数?
谢谢!
_Thread__args
和 _Thread__kwargs
存储构造函数的参数。
但是,正如您可能通过下划线猜到的那样,这些不是公共 API 的一部分。 事实上,“损坏、重命名的属性”旨在阻止直接访问。
此外,这些属性特定于 CPython 实现。 例如,Jython 似乎没有通过这些名称公开这些属性(免责声明:我没有测试,只是浏览了源代码)。
在您的情况下,最好以某种对应用程序有意义的方式将参数存储在 Thread 的子类中,并访问它们。
您可以简单地在
_Thread__arg
对象上使用 Thread
来获取传递给该 Thread
对象的参数的详细信息。
import threading
def TestTarget(a, b):
pass
myThread = threading.Thread(target=TestTarget, args=(1, 2,))
print myThread._Thread__arg
>>> (1, 2)
pilcrows 回答后 - 我使用这个工作解决方案:
from threading import Thread
class myThread(Thread):
args = None
def __init__(self, group=None, target=None, args=(), name=None, kwargs = None, daemon = None):
self.args = args
super(RaThread, self).__init__(group=group, target=target, args=args, name=name, kwargs=kwargs, daemon=daemon)
谢谢大家的帮助!
导入螺纹
def TestTarget(a, b): 通过
myThread = threading.Thread(target=TestTarget, args=(1, 2,))
(myThread.dict[“_args”])
arg1,arg2 = ((myThread.dict[“_args”]))