pp 모듈을 사용할 때 'test'개체의 dict 'params'를 업데이트 할 수 없습니다. 이것이 왜 일어날 지 누가 알 수 있습니까? 그냥 코드를 보면 :Parallel Python 모듈을 사용할 때 'dict'개체를 업데이트 할 수 없습니다.
import pp
class test(object):
params = {'n': None}
dic2 = {}
n = None
def __init__(self, i):
#won't change
self.params['n'] = i
#changed
self.n = i
self.dic2 = {i: i}
def run(self):
print self.n, self.params, self.dic2
job_server = pp.Server()
jobs = []
for i in xrange(10):
t = test(i)
#won't change
t.params['n'] = i
#changed
t.n = i
t.run()
jobs.append(job_server.submit(t.run))
[job() for job in jobs]
결과 : PP를 사용하는 경우 우리가 볼 수있는 바와 같이, "PARAMS는 [ 'N']"
0 {'n': 0} {0: 0}
1 {'n': 1} {1: 1}
2 {'n': 2} {2: 2}
3 {'n': 3} {3: 3}
4 {'n': 4} {4: 4}
0 {'n': None} {0: 0}
1 {'n': None} {1: 1}
2 {'n': None} {2: 2}
3 {'n': None} {3: 3}
4 {'n': None} {4: 4}
를 업데이트 할 수 없습니다. 그것은 이상한 행동입니다. 어떻게 이런 일이 일어날 수 있겠습니까?