多处理类中的函数初始化 [英] multiprocessing initialising a function in a class

查看:42
本文介绍了多处理类中的函数初始化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图通过在同一类内部的函数中调用多处理方法来在类中初始化函数

I am trying to initialise a function in a class using multiprocessing, by calling it from a function, which is inside the same same 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,))

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

but when I call stream it raises an error

TypeError:Streaminit()恰好接受2个参数(给定1个)

我在这方面做错了什么

推荐答案

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

您在这里不带任何参数地调用 Streaminit 函数,它需要一个参数(加上 self ).因此自然会导致错误.

You're calling the Streaminit function here with no arguments, and it takes one argument (plus self). So naturally it'll cause an error.

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

What it looks like you wanted to do was pass the function itself to multiprocessing.Process:

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

这篇关于多处理类中的函数初始化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆