【发布时间】:2020-12-17 01:51:36
【问题描述】:
在我的 python 代码中,我有一个类。我想在线程中运行该类的方法。该方法将字典作为其参数。
def func1(self, input_dictionary):
...
为了让这个方法在线程中运行,我发现我需要将我的字典作为(mydict,)传递给函数:
threading.Thread(target=self.func1, arg=(mydict,))
我想知道arg=(myDict,) 和arg=(myDict) 之间的区别。 mydict 之后的 , 对元组有什么作用?
运行以下将导致 python 抱怨 self.func1 需要 2 个位置参数,并且我输入了错误的输入数量。
threading.Thread(target=self.func1, arg=(mydict)) # or the next one
threading.Thread(target=self.func1, arg=mydict)
有人能解释一下吗?
【问题讨论】:
-
arg=的任何版本都是错误的 - 参数名称是args。这似乎是一个需要争论的小细节,但你只是被这样一个小细节所吸引。发帖时请多加注意此类内容。此类拼写错误会掩盖问题的实际原因。 -
完全正确。对不起。我因遇到的问题而分心,忘记了帖子中的其他细节。
-
删除 [multithreading] 标签,因为这个问题及其答案与线程无关。这只是一个关于 Python 语言的问题。