python Manager 之dict KeyError问题的解决

yipeiwu_com5年前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的Django框架中Manager方法的使用

在语句Book.objects.all()中,objects是一个特殊的属性,需要通过它查询数据库。 在第5章,我们只是简要地说这是模块的manager 。现在是时候深入了解manage...

Python删除n行后的其他行方法

如下所示: #!/usr/bin/python #-*- coding: utf-8 -*- fin=open('add_1.txt') a=fin.readlines() #...

django主动抛出403异常的方法详解

django主动抛出403异常的方法详解

前言 网上的做法基本都是下面的代码 return HttpResponseForbidden() 试了一下,效果一般,没有异常页面显示,最终显示的是浏览器的异常页面,如下图: 设...

Python编程实现及时获取新邮件的方法示例

本文实例讲述了Python编程实现及时获取新邮件的方法。分享给大家供大家参考,具体如下: #-*- encoding: utf-8 -*- import sys import loc...

在Python中操作文件之read()方法的使用教程

 read()方法读取文件size个字节大小。如果读取命中获得EOF大小字节之前,那么它只能读取可用的字节。 语法 以下是read()方法的语法: fileObject.r...