【发布时间】:2016-10-31 10:20:41
【问题描述】:
我正在尝试移植到 python3 this answer。但是我不确定如何在python3中设置Thread.__init__函数。
一个python2Thread.__init__在一个线程类中的减速是:
Thread.__init__(self, group=None, target=None, name=None, args=(), kwargs=None, verbose=None)
但是python3它的:
Thread.__init__(self, group=None, target=None, name=None, args=(), kwargs=None, *, daemon=None)
注意:python3中的结尾是:args=(), kwargs=None, *, daemon=None)
部分问题是我不明白如何处理函数减速中的星号*。解释它的用途也会有所帮助。
仅使用 python2 引发:TypeError: __init__() takes from 1 to 6 positional arguments but 7 were given
python3Thread.__init__应该怎么写?
更新,示例中的python2调用为:
Thread.__init__(self, group, target, name, args, kwargs, Verbose)
我的逻辑怎么会说这在 python3 中可以工作,但事实并非如此,答案应该包括如何调用它,或说明如何构建它,包括 kwargs:
Thread.__init__(self, group, target, name, args, kwargs, daemon)
【问题讨论】:
-
*强制调用者对星号之后的所有内容使用 kwargs。
标签: python multithreading python-3.x oop