以下の一般的な例では、Foo
の辞書を管理するのに、Foobar_Collection
を使用します。さらに、Foobar_Collection
は、をすべての機密で共有する方法を、Foo
と順次呼びます。これまでのところうまく動作します。しかし、私は のマルチプロセッシングを利用することができて、run_myMethodForAllfoobars()
はいくつかのチャンクのインスタンスを分割できますか?インスタンスメソッドはお互いに独立しています(この場合は恥ずかしそうに並行と呼ばれます)。どんな助けも素晴らしいだろう!クラスインスタンスの辞書でのマルチプロセッシング
class Foobar_Collection(dict):
def __init__(self, *arg, **kw):
super(Foobar_Collection, self).__init__(*arg,**kw)
def foobar(self,*arg,**kw):
foo = Foo(*arg,**kw)
self[foo.name] = foo
return foo
def run_myMethodForAllfoobars(self):
for name in self:
self[name].myMethod(10)
return None
class Foo(object):
def __init__(self,name):
self.name = name
self.result = 0
# just some toy example method
def myMethod(self,x):
self.result += x
return None
Foobar = Foobar_Collection()
Foobar.foobar('A')
Foobar.foobar('B')
Foobar.foobar('C')
Foobar.run_myMethodForAllfoobars()
実際、あなたの提案のように自分の方法を切り離すことができます。ヒントと助けてくれてありがとう。私は、mpが自動的にチャンク内の辞書を「分割する」と仮定するのは正しいですか?あなたの答えに関しては、私は 'forループ'がlilエラー( 'new_result')を含んでいると思いますか?しかし、私はそれが自分のために働いて怒っています。 – Tim
おっと、私は 'zip'呼び出しを省きました。これは結果を' foo'オブジェクトと一致させます。 – Blckknght
それは私がそれを解決した方法です;) – Tim