Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ChainMap.new_child()返回什么?_Python_Data Structures - Fatal编程技术网

Python ChainMap.new_child()返回什么?

Python ChainMap.new_child()返回什么?,python,data-structures,Python,Data Structures,我在看书。第35页中有一个链图的例子。我不太理解上下跳跃的值,请查看我的理解和下面的问题: >>> values = ChainMap() >>> values['x'] = 1 我假设现在values是ChainMap({'x':1}) 在这三行末尾,现在的值是多少?ChainMap还是里面的字典 我真的有点迷路了,这里的代码对我来说意味着链图添加了一个新的孩子,这将是一本新字典;因此,值成为一个由链图链接的字典项;然后将值分配给新词典 >

我在看书。第35页中有一个
链图的例子。我不太理解上下跳跃的
值,请查看我的理解和下面的问题:

>>> 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})