为什么会抛出KeyError错误:
d = dict()
d['xyz']
但是这并不?
d = dict()
d.get('xyz')
我也很好奇描述符在这里是否起到了作用。
为什么会抛出KeyError错误:
d = dict()
d['xyz']
但是这并不?
d = dict()
d.get('xyz')
我也很好奇描述符在这里是否起到了作用。
这就是get()
方法的定义。
来自Python文档:
如果字典中存在键key,则返回其对应的值,否则返回默认值。如果未提供默认值,则默认为None,因此该方法永远不会引发KeyError异常。
默认的“未找到”返回值是None
。您可以返回任何其他默认值。
d = dict()
d.get('xyz', 42) # returns 42
通过方括号访问没有默认值,但是get
方法有默认值,而默认值是None
。可以通过a = dict(); help(a.get)
查阅get方法的文档。
Help on built-in function get:
get(...)
D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None.
仅仅因为 [1] 键不在映射中,以及 [2] 这两个操作的性质不同。
来自 字典 映射类型:
d[key]
返回具有键key的d的项。如果key不在映射中,则引发KeyError。
get(key[, default])
None
(或指定默认值)或异常,你需要掌握这一点。你对具体实现细节感兴趣吗? - TigerhawkT3