Python ChainMap.new_child()返回什么?
我在看书。第35页中有一个Python ChainMap.new_child()返回什么?,python,data-structures,Python,Data Structures,我在看书。第35页中有一个链图的例子。我不太理解上下跳跃的值,请查看我的理解和下面的问题: >>> values = ChainMap() >>> values['x'] = 1 我假设现在values是ChainMap({'x':1}) 在这三行末尾,现在的值是多少?ChainMap还是里面的字典 我真的有点迷路了,这里的代码对我来说意味着链图添加了一个新的孩子,这将是一本新字典;因此,值成为一个由链图链接的字典项;然后将值分配给新词典 >
链图的例子。我不太理解上下跳跃的值,请查看我的理解和下面的问题:
>>> values = ChainMap()
>>> values['x'] = 1
我假设现在values
是ChainMap({'x':1})
在这三行末尾,现在的值是多少?ChainMap
还是里面的字典
我真的有点迷路了,这里的代码对我来说意味着链图
添加了一个新的孩子,这将是一本新字典;因此,值
成为一个由链图
链接的字典项;然后将值
分配给新词典
>>> # Add a new mapping
>>> values = values.new_child()
>>> values['x'] = 3
但是现在values'又开始调用new_child()!是不是“
new\u child()只能由一个
ChainMap调用,而不是一个特定的
dictionary`它链接?这是一本很棒的书,我想每个Python开发人员都应该至少阅读第1章和第4章
关于你的问题:
在这三行的末尾,现在的值是什么
值是映射了两个字典的ChainMap
对象:
values = ChainMap({'x': 1}, {'x': 2})
令人困惑的是,(变异的)对象本身是从new\u child()
返回的,而不是真正的子对象
但是现在值“又开始调用new_child()
当然,您可以根据需要多次调用new\u child()
,值将始终是ChainMap
对象,使用定义的方法new\u child()
谢谢!现在我明白了。顺便说一句,ChainMap的父属性确实是误导性的!为什么不使用cdr
。。。。
values = ChainMap({'x': 1}, {'x': 2})