Python dict.get('key')与dict ['key']

fou*_*ing 11 python dictionary descriptor keyerror

为什么会抛出一个KeyError:

d = dict()
d['xyz']
Run Code Online (Sandbox Code Playgroud)

但这不是吗?

d = dict()
d.get('xyz')
Run Code Online (Sandbox Code Playgroud)

如果描述符在这里起作用,我也很好奇.

Mar*_*cny 18

这就是get()方法的定义方式.

Python文档:

如果key在字典中,则返回key的值,否则返回default.如果未给出default,则默认为None,因此此方法永远不会引发KeyError.

默认的"未找到"返回值是None.您可以返回任何其他默认值.

d = dict()
d.get('xyz', 42)  # returns 42
Run Code Online (Sandbox Code Playgroud)


Eri*_*ouf 5

通过括号访问没有默认值,但该get方法有默认值None。来自 get 的文档(通过a = dict(); help(a.get)

Help on built-in function get:

get(...)
    D.get(k[,d]) -> D[k] if k in D, else d.  d defaults to None.
Run Code Online (Sandbox Code Playgroud)