아래의 일반적인 예제에서 사전의 관리에는 Foobar_Collection
을 사용합니다. Additionaly, 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
와우, 결과를 foo 객체와 일치시키는'zip' 호출을 생략했습니다. – Blckknght
그게 내가 해결 한 방법이기도하다.) – Tim