【发布时间】:2020-11-06 03:57:00
【问题描述】:
我只是在玩 Python 的 dictionaries 和 lists。我发现了这些奇怪的东西-
在初始化任何 Python dict、list 或其他一些数据类型时,您无法执行该数据类型的操作。
# 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 对象上执行,在第二种情况下从未启动过,即。 从未创建字典对象。
您对此有何看法?
如果我错了,请放弃你的答案并纠正我。我想,我可能是。
谢谢
【问题讨论】:
-
在此处发布之前,请参阅适用的文档。
update更改调用对象,并返回None。您的两个示例在功能上不等效。
标签: python dictionary findbugs