4
我有一些多進程代碼,我想在進程中共享嵌套字典。字典永遠不會被進程修改;剛剛閱讀。嘗試訪問嵌套Manager.dict中的鍵值時發生KeyError
在最簡單的形式,有問題的代碼如下:
from multiprocessing import Manager
class MyClass(object):
def __init__(self):
self.manager = Manager()
self.delays = self.manager.dict({})
def foo(self, types, keys):
for type in types:
self.delays[type] = self.manager.dict({})
for key in keys:
self.delays[type][key] = 0
print("The delay is " + str(self.delays[type][key]))
我在print語句得到一個KeyError
在那裏說,我使用的鍵不存在。我不確定爲什麼會發生這種情況,因爲我只是將密鑰插入字典中。當我將其改爲正規字典時,問題就會消失。
有沒有可能發佈'Manager'類的相關部分?例如'Manager.dict()'和一個普通的老Python字典之間有什麼區別? – bakkal
'Manager'來自['multiprocessing'](https://docs.python.org/3/library/multiprocessing.html)模塊。 –
知道它,並編輯,以防萬一別人有相同的問題:) – bakkal