2
私はParallel Pythonでかなり単純なことをしようとしています。クラスを使用して別のメソッドの中で作成したクラスからオブジェクトを作成して、並行してジョブを実行できるようにしたいと考えています。並列Python - 並列実行で別のクラスにオブジェクトを作成する
import pp
class TestClass(object):
def __init__(self):
pass
def doSomething (self, number) :
print number**2
class PPTask (object) :
def __init__ (self) :
pass
def ppTask(self, number = 1) :
sum = 0
sum += number
tc = TestClass()
tc.doSomething(sum)
return sum
if __name__ == '__main__' :
job_server = pp.Server()
job_list = []
results = []
for i in xrange(10) :
pt = PPTask()
job_list.append(job_server.submit(pt.ppTask, (1,), globals = globals()))
for job in job_list :
results.append(job())
for result in results :
print result
このNameError: global name 'TestClass' is not defined
を上げ、私はそれを渡すか、ppTask方法でそれを再利用する任意の解決策を見つけることができませんでした: は、ここで私はそれを動作させるしたいものの基本的な例です。
どのような助けも大幅に強化されます。
は
ありがとう、それはうまくいきます。 PPの提出方法によってグローバルがどのように処理されるのかまだ分かりません。私はglobals = {'TestClass':}を介して辞書を使ってTestClassを渡そうとしましたが、なぜこれがうまくいかないのか分かりません。 –
ええ、私もそれを試みましたが、どちらかを働かせることができませんでした。 _should_のように思えるが、私は自信を持ってそれを言うために 'pp'について十分に知りません。なぜなら、私は通常別々のモジュールファイルに別々のクラスを入れて、 'Server.submit()'に 'modules'キーワード引数を使って、何をインポートするかをジョブに伝えるだけなので、これまで実行したことはありませんでした。 –