照着视频教程里的代码敲出来,按照教程里重写run()后 self._target(*self._args)标黄,运行一直报错,请问是什么原因,有什么方法可以解决
fun1() missing 1 required positional argument: 'delay'
self._target(*self._args)
TypeError: fun2() missing 1 required positional argument: 'delay'
import threading
import time
def fun1(thread_name,delay):
print('线程{}执行fun1'.format(thread_name))
time.sleep(delay)
print('线程{}执行结束'.format(thread_name))
def fun2(thread_name,delay):
print('线程{}执行fun2'.format(thread_name))
time.sleep(delay)
print('线程{}执行结束'.format(thread_name))
#创建一个类MyThread,继承threading.Thread
class MyThread(threading.Thread):
#重新构造方法
def __init__(self,func,name,args):
super(MyThread,self).__init__(target=func,name=name,args=args)
#重写run方法
def run(self):
self._target(*self._args)
if __name__=='__main__':
print('开始执行')
t1=MyThread(fun1,'thread-1',(2,))
t2=MyThread(fun2,'thread-2',(4,))
t1.start()
t2.start()
t1=MyThread(fun1,'thread-1',(2,1))
t2=MyThread(fun2,'thread-2',(4,1))
括号里少传个参数,delay,这个参数用来模拟函数fun1和fun2的运行时间,单位是秒