繁体   English   中英

线程未启动:TypeError: backgroundTask() 接受 1 个位置参数,但给出了 2 个

[英]thread does not start:TypeError: backgroundTask() takes 1 positional argument but 2 were given

我正在 python 中学习多线程。 谁能告诉我为什么线程没有启动?

代码:导入线程导入时间导入日志

class Threads_2:

def __new__(cls):
    """
    this will be invoked once the creation procedure of the object begins
    """
    instance = super(Threads_2,cls).__new__(cls)
    return instance

def __init__(self):
    """
    this will be invoked once the initialisation procedure of the object begins
    """
    #self.configLogging()
    #threadinf.Thread.__init__(self)
    #self.spawnThreads()

def spawnThreads(self):
    if __name__ == "__main__":
        thread1 = threading.Thread(target=self.backgroundTask, args=(10,))
        thread1.start()

def backgroundTask(numOfLoops):
    for i in numOfLoops:
        print(2)


obj = Threads_2()
obj.spawnThreads()

错误

Exception in thread Thread-1:
Traceback (most recent call last):
File "C:\Users\xxx\AppData\Local\Programs\Python\Python39\lib\threading.py", line 954, in _bootstrap_inner
self.run()
File "C:\Users\xxx\AppData\Local\Programs\Python\Python39\lib\threading.py", line 892, in run
self._target(*self._args, **self._kwargs)
TypeError: backgroundTask() takes 1 positional argument but 2 were given
PS D:\python workspace>

function backgroundTask 在 class Threads_2 中。 所以,它应该是 backgroundTask(self, numOfLoops) 而不是 backgroundTask(numOfLoops)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM