import threading
class MyThread(threading.Thread):
def __init__(self, target, *args):
self._des = target
self._args = args
threading.Thread.__init__(self,)
self._stopper = threading.Event()
def run(self):
self._des(*self._args)
def stop(self):
self._stopper.set()
def stopped(self):
return self._stopper.isSet()
def add(a,b):
print(a+b)
if __name__ == "__main__":
f1 = MyThread(add,1,2)
f1.start()
f1.join()
上面的代码在python2.7上运行得非常好,但是当我在3.4中尝试时,它显示了以下错误
TypeError: add() missing 2 required positional arguments: 'a' and 'b'
有人能帮我解决这个问题吗。? 提前谢谢。你知道吗
在赋值
self.args = args
时,您将值作为一个元组来获取,因此您应该首先将其获取/解析为元组,然后将其传递给add
函数。 所以你要做的就是把你的args
做成一个元组。你知道吗下面是已修改的代码,标记行已更改。你知道吗
希望这有帮助。你知道吗
为了简单起见,这个很管用
顺便说一句,您需要先运行初始化,因为这会清除所有值,如下所示
相关问题 更多 >
编程相关推荐