python多线程报错

我想做一个简易的多线程来运行一些cmd命令,但是总是报一个很玄学的错误。

import threading
import os

class RUN:
    def unit(data):
        data = os.popen(str(data))
        data = data.read()
        print(data)
    def RUN(data):
        print(data)
        name_list = []
        theard = threading.Thread(target=RUN.unit,args=(data))
        theard.start()
        print(theard)
        theard.join()
        print(theard)


报错如下

Exception in thread Thread-1 (unit):

Traceback (most recent call last):
File "F:\main_file\main\python-3-11-1\Lib\threading.py", line 1038, in _bootstrap_inner
self.run()
File "F:\main_file\main\python-3-11-1\Lib\threading.py", line 975, in run
self._target(*self._args, **self._kwargs)
TypeError: RUN.unit() takes 1 positional argument but 8 were given

传递方式改下,data后加个逗号 ,
theard = threading.Thread(target=RUN.unit,args=(data,))

应该是这样:

import threading
import os
class RUN:
    def unit(self,data):
        data = os.popen(str(data))
        data = data.read()
        print(data)
    
    def RUN(self,data):
        print(data)
        name_list = []
        theard = threading.Thread(target = RUN.unit, args = data)
        theard.start()
        print(theard)
        theard.join()
        print(theard)

类里面的方法的第一个参数必须是self.