多处理中的自我 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
我已经搜索过如何执行此操作,但没有找到。我想有人会给我一个 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