python中的深度复制和dict更新

python中的深度复制和dict更新,python,python-2.x,Python,Python 2.x,我正在尝试获取dict的deepcopy,并在Python2.6中更新结果。以下代码运行良好: >>> a = {1:2} >>> b = copy.deepcopy(a) >>> b.update({3:4}) >>> b {1: 2, 3: 4} 而下面的代码不起作用 >>> a={1:2} >>> b = copy.deepcopy(a).update({3:4}) >>

我正在尝试获取dict的deepcopy,并在Python2.6中更新结果。以下代码运行良好:

>>> a = {1:2}
>>> b = copy.deepcopy(a)
>>> b.update({3:4})
>>> b
{1: 2, 3: 4}
而下面的代码不起作用

>>> a={1:2}
>>> b = copy.deepcopy(a).update({3:4})
>>> b
>>> 

为什么第二个代码段给出了
None

dict.update
是一个类似于
list.sort
的就地操作,它不会返回一个值,它会修改调用它的原始对象


如果您实际上
printb
,您将看到
None
,因为默认情况下,所有未指定返回值的python函数都将返回None。因此,您将
b
分配给调用
update
的结果,该结果实际上是
None
您的更新方法实际上返回
None
update()
methodoutput参数实际上是您提供的一个输入dict,它在函数中发生了变化