在初始化时更新 Python dict

Updating Python dict at the time of initialization

我只是在玩 Python 的 字典 列表 。我发现了这些奇怪的东西 -

任何Python字典、列表或其他一些数据类型的初始化时,您不能执行该数据类型的操作。

# Case 1
d1 = {}
d1.update({'a': 'A'})
print(d1)

# Case 2
d2 = {}.update({'p': 'P'})
print(d2)

输出:

{'a': 'A'}
None

奇怪的是,d2 既没有初始化也没有抛出任何错误。

我怎么看这个?

嗯,Python's interpreter reads code line by line。因此,当它读取行 d1 = {} 时,它会在内存中保存 d1 和类型 (dict)。

但是 d2 = {}.update({'p': 'P'})

不会发生这种情况

dict的任何操作都可以在dict对象上执行,在第二种情况下从未启动过,即。 从未创建字典对象

你怎么看这个?

如果我错了,请留下你的答案并纠正我。我想,我可能是。

谢谢

dict.update() 是一个没有 return 类型的操作。

好吧,.update() 字典更新就地 returns 什么都没有,所以当你初始化一个空字典并更新它时,它 returns 什么都没有 None 被分配给 d2。相反,它会像:

d = {}
d.update({'p': 'P'})
print(d)