multiprocessing 在 class 中初始化一个函数

multiprocessing initialising a function in a class

我正在尝试使用多处理在 class 中初始化一个函数,方法是从一个函数中调用它,该函数位于同一个 class

    def Streaminit(self,_track):
        self.twitterStream = tweepy.Stream(self.auth, Twitterapi.Listener())
        self.twitterStream.filter(track=_track)

    def Stream(self,track=""):
        self.streamobj = multiprocessing.Process(target = self.Streaminit(),args=(track,))

但是当我调用流时它会引发错误

TypeError: Streaminit() takes exactly 2 arguments (1 given)

我做错了什么

self.streamobj = multiprocessing.Process(target = self.Streaminit(),args=(track,))

您在这里调用 Streaminit 函数时没有参数,它有一个参数(加上 self)。所以自然会导致错误。

您似乎想做的是将函数本身传递给 multiprocessing.Process:

self.streamobj = multiprocessing.Process(target=self.Streaminit, args=(track,))