我在我的类中有一个叫做“交互”的方法:
class Interaction:
def PreparaThreadBrowser(self, User, Password):
t = ThreadBrowser(args=(User, Password), )
t.start()
它与用户调用线程并作为参数传递。在
然后我有了一个名为“ThreadBrowser”的类,它具有以下“run”方法:
^{pr2}$但事实证明,我确实很难将参数发送到thread函数,因为它会导致执行错误:
TypeError: run() missing 2 required positional arguments: 'user' and 'password'
你知道怎么解决这个问题吗?在
Run接受2个参数user,pass
args
构造函数参数不能为run
提供其他参数。它为target提供参数,您没有指定这些参数。具体来说:run()
的默认实现调用self.target(*self._args, **self._kwargs)
,其中_args
和{通过实现
run
,您选择了退出Python自动调用target(*args)
。然后由您的代码来存储run
将获得的状态。惯用的方法是将其存储在构造函数中,就像现在的run
方法所做的那样。例如:
然后
ThreadBrowser
可以自然地构造为ThreadBrowser(username, password)
,并像以前一样以t.start()
开头。在相关问题 更多 >
编程相关推荐