使用时是否需要将“self”传递给args螺纹或者多处理过程使用类方法

2024-03-29 00:57:00 发布

您现在位置:Python中文网/ 问答频道 /正文

例如,对类方法使用线程或多处理

class ExampleClass:
    def run(self, run_param):
        print run_param

    def run_parallel(self, num):
        processes = []
        for i in xrange(num):
            p = multiprocessing.Process(target=self.run, args=(i,))
            # should I pass self to args like
            # p = multiprocessing.Process(target=self.run, args=(self, i))
            processes.append(p)
        for p in processes:
            p.start()
        for p in processes:
            p.join()

Tags: 方法runinselftargetforparamdef
1条回答
网友
1楼 · 发布于 2024-03-29 00:57:00

由于将self.run作为绑定方法传递,因此不需要将self作为第一个参数传递给它:

p = multiprocessing.Process(target=self.run, args=(i,))

只有将未绑定方法作为target参数传递给Process时才需要self

p = multiprocessing.Process(target=ExampleClass.run, args=(self, i))

相关问题 更多 >