Python字典之取值
文章目錄
《Fluent Python》中写到,在使用Python字典时,有两种方式,d[key]与d.get(key),它们有一些细微的区别
d[key]底层实现是调用
dict.__getitem__
, 而d.get(key)就是一个函数调用。当
dict.__getitem__
没有找到key时,会调用dict.__missing__
执行如下代码1
2
3
4from dis import dis
d = dict()
print(dis('d["a"]'))
print(dis('d.get("a")'))
输出如下结果
1 | 1 0 LOAD_NAME 0 (d) |
可以看到get是函数调用,而d[]不是。
编写测试代码如下
1 | class Dict(dict): |
输出结果如下
1 | test 2 None 2 |