私はいくつかの辞書を含め、(多数の)多数の異なるプロパティを含むクラスを持っています。クラスのインスタンスを新しいプロセスに渡すと、すべての数値が正しく渡されたように見えますが、クラスオブジェクトにあった辞書は空になります。ここでPythonが辞書をマルチプロセッシングで処理するようにしました
は私の問題を示しています私は調理の簡単なテストです:
from multiprocessing import Process
class State:
a = 0
b = {}
def f(s, i):
print "f:", s.a, s.b
def main():
state = State()
state.a = 11
state.b['testing'] = 12
print "Main:", state.a, state.b
ps = []
for i in range(1):
p = Process(target=f, args=(state, i))
p.start() # Do the work
ps.append(p)
for p in ps:
p.join()
if __name__ == '__main__':
main()
私は出力が
Main: 11 {'testing': 12}
f: 11 {'testing': 12}
ことを期待するが、代わりに、私は
Main: 11 {'testing': 12}
f: 11 {}
私はあなたの例をテストするときに期待される出力を得ます。 – zeekay
何を待っていますか?私はWindows 7でPython 2.6.6を使用していますか? : – numegil
OS X 10.7.1、Python 2.7.1。 – zeekay