python Manager 之dict KeyError问题的解决

yipeiwu_com6年前Python基础

程序需要多进程见共享内存,使用了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设计】。

相关文章

基于Python的XSS测试工具XSStrike使用方法

基于Python的XSS测试工具XSStrike使用方法

简介 XSStrike 是一款用于探测并利用XSS漏洞的脚本 XSStrike目前所提供的产品特性: 对参数进行模糊测试之后构建合适的payload 使用payload对参数进行穷举匹配...

PyQt5实现简单数据标注工具

PyQt5实现简单数据标注工具

本文实例为大家分享了PyQt5实现简单数据标注工具的具体代码,分类用,供大家参考,具体内容如下 第一个最大的图片是当前要标注的类别,接下来的两个图片是对接下来会出现的图片的预览(方便连...

opencv3/python 鼠标响应操作详解

opencv3/python 鼠标响应操作详解

鼠标回调函数: def setMouseCallback( windowName, #窗口名称 onMouse, #鼠标响应处理函数 param=None)...

python正则实现计算器功能

本文实例为大家分享了python正则实现计算器功能的具体代码,供大家参考,具体内容如下 # -*- coding: utf-8 -*- # Author :Gogh # @Ti...

对Python的多进程锁的使用方法详解

很多时候,我们需要在多个进程中同时写一个文件,如果不加锁机制,就会导致写文件错乱 这个时候,我们可以使用multiprocessing.Lock() 我一开始是这样使用的: impo...