【发布时间】:2021-01-22 12:00:39
【问题描述】:
我在我的脚本中使用了多线程概念。但是我在运行脚本时遇到了上述错误。我在 python 2.7 中使用了相同的代码,它运行良好,但在 python 3.6 中它给了我错误。你能帮我解决这个问题吗?
我正在使用的代码-
class ThreadWithReturnValue(Thread):
def __init__(self, group=None, target=None, name=None,
args=(), kwargs={}, Verbose=None):
Thread.__init__(self, group, target, name, args, kwargs, Verbose)
self._return = None
def run(self):
if self._Thread__target is not None:
self._return = self._Thread__target(*self._Thread__args,
**self._Thread__kwargs)
def join(self):
Thread.join(self)
return self._return
可能是python 3.6中的语法不同请帮我解决这个错误。
错误:
Traceback (most recent call last):
File "/app/HTA/Scripts/Python/HTA_Consump_Layer_Procs.py", line 588, in <module>
main()
File "/app/HTA/Scripts/Python/HTA_Consump_Layer_Procs.py", line 585, in main
parallel_Execution()
File "/app/HTA/Scripts/Python/HTA_Consump_Layer_Procs.py", line 395, in parallel_Execution
p2 = ThreadWithReturnValue(target = partial(parallel_temp2, unique_exec_seq, df ))
File "/app/HTA/Scripts/Python/HTA_Consump_Layer_Procs.py", line 365, in __init__
Thread.__init__(self, group, target, name, args, kwargs, Verbose)
TypeError: __init__() takes from 1 to 6 positional arguments but 7 were given
【问题讨论】:
-
@toRex 出现此错误 - AttributeError: 'ThreadWithReturnValue' 对象没有属性 '_Thread__target'
-
@toRex 我做了这个 - 类 ThreadWithReturnValue(Thread): def __init__(self, group=None, target=None, name=None, args=(), kwargs=None, *, daemon= None): Thread.__init__(self, group, target, name, args, kwargs, daemon=daemon) self._return = None def run(self): if self._Thread__target is not None: self._return = self._Thread__target( *self._Thread__args, **self._Thread__kwargs) def join(self): Thread.join(self) return self._return
标签: python-3.x multithreading oop python-multithreading