多处理中的自我 python

self in multiprocessing python

我已经搜索过如何执行此操作,但没有找到。我想有人会给我一个 link 到 google 搜索,但我真的不知道到底要找什么。我正在尝试通过 class 的方法在 python 中使用多处理。此方法具有 "self" arg,但即使我传递了它,我也会收到一条错误消息,提示我没有提供它:

代码:

def move_one_particle(self, moving_way):

def move(self, moving_way):
    for dummy_time in range(self.num_particles):
        p=mp.Process(target=self.move_one_particle, args=(moving_way))
        p.start()
        p.join()

输出:

move_one_particle() takes exactly 2 arguments (1 given)

这只是一个元组的东西。当你写

(moving_away)

这不是元组。不过

(moving_away, )

是。见 Python wiki on this point.


这是我解决你的问题的模型。

class Foo(object):
    def bar(self, baz):
        print baz

    def shmo(self):
        p = multiprocessing.Process(target=self.bar, args=(3,))
        p.run()

>> Foo().shmo()
3