程序需要多进程见共享内存,使用了Manager的dict。
最初代码如下:
from multiprocessing import Process, Manager
d = Manager().dict()
d2 = {}
def f():
d['a1'] = {}
<span style="color:#ff6666;"> d['a1']['a2'] = 11</span>
print d['a1']['a2']
if __name__ == '__main__':
p = Process(target=f)
p.start()
p.join()
结果报错:
print d['a1']['a2']
KeyError: 'a2'
解决方案:
from multiprocessing import Process, Manager
d = Manager().dict()
d2 = {}
def f():
d['a1'] = {}
<span style="color:#ff6666;"> d2['a2'] = 11
d['a1'] = d2</span>
print d['a1']['a2']
if __name__ == '__main__':
p = Process(target=f)
p.start()
p.join()
以上这篇python Manager 之dict KeyError问题的解决就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。
您可能感兴趣的文章:详解解决Python memory error的问题(四种解决方案)新手常见6种的python报错及解决方法python修改字典键(key)的方法python 字典修改键(key)的几种方法