程序需要多进程见共享内存,使用了Manager的dict。
最初代码如下:
from multiprocessing import Process, Manager
d = Manager().dict()
d2 = {}
def f():
d['a1'] = {}
<span > 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 > 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问题的解决就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持亿速云。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。