错误写法:
from threading import Thread
t = Thread(target=test, args=(filename))
error:
Exception in thread Thread-1:
Traceback (most recent call last):
File "/owner/software/miniconda3/lib/python3.7/threading.py", line 917, in _bootstrap_inner
self.run()
File "/owner/software/miniconda3/lib/python3.7/threading.py", line 865, in run
self._target(*self._args, **self._kwargs)
TypeError: CRISPER() takes 1 positional argument but 3 were given
从报错信息中可以看出,args是通过元组打包的数据,args和*kwargs这两者打包数据类型不同
File "/owner/software/miniconda3/lib/python3.7/threading.py", line 865, in run
self._target(*self._args, **self._kwargs)
由于输入的参数只有一个,根据元组的特性,一个元素后面要加“,”。
如果不加逗号,"args=(fliename)"两边的左右括号会被当作参数传入。
正确写法:
from threading import Thread
t = Thread(target=test, args=(fliename,))