TypeError: __init__() takes from 1 to 6 positional arguments but 7 were given
TypeError: __init__() takes from 1 to 6 positional arguments but 7 were given
我在脚本中使用了多线程概念。但是我在 运行 脚本时遇到上述错误。我在 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
好吧,我在 Thread.__init__()
中尝试了忽略 Verbose 然后它对我来说工作正常。找到我的演示代码和输出。先前 Python<3
在线程中使用 Verbose
但在 3.x+
之后 Verbose 被忽略。
from threading import Thread
def foo(bar):
print('hello {0}'.format(bar))
return "foo"
class ThreadWithReturnValue(Thread):
def __init__(self, group=None, target=None, name=None, args=(), kwargs={}, Verbose=None):
Thread.__init__(self, group, target, name, args, kwargs)
self._return = None
def run(self):
if self._target is not None:
self._return = self._target(*self._args, **self._kwargs)
def join(self, *args):
Thread.join(self, *args)
return self._return
twrv = ThreadWithReturnValue(target=foo, args=('world!',))
twrv.start()
print(twrv.join())
# Output
# hello world!
# foo
我在脚本中使用了多线程概念。但是我在 运行 脚本时遇到上述错误。我在 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
好吧,我在 Thread.__init__()
中尝试了忽略 Verbose 然后它对我来说工作正常。找到我的演示代码和输出。先前 Python<3
在线程中使用 Verbose
但在 3.x+
之后 Verbose 被忽略。
from threading import Thread
def foo(bar):
print('hello {0}'.format(bar))
return "foo"
class ThreadWithReturnValue(Thread):
def __init__(self, group=None, target=None, name=None, args=(), kwargs={}, Verbose=None):
Thread.__init__(self, group, target, name, args, kwargs)
self._return = None
def run(self):
if self._target is not None:
self._return = self._target(*self._args, **self._kwargs)
def join(self, *args):
Thread.join(self, *args)
return self._return
twrv = ThreadWithReturnValue(target=foo, args=('world!',))
twrv.start()
print(twrv.join())
# Output
# hello world!
# foo