先看代碼:
In [1]: a = {'name': 'wang'} In [2]: a.get('age') In [3]: a['age'] --------------------------------------------------------------------------- KeyError Traceback (most recent call last) <ipython-input-3-a620cb7b172a> in <module>() ----> 1 a['age'] KeyError: 'age' In [4]: a.get('age', 10) Out[4]: 10
所以,dict['key']只能獲取存在的值,如果不存在則觸發KeyError
而dict.get(key, default=None)則如果不存在則返回一個默認值,如果設置了則是設置的,否則就是None
In [6]: type(a.get('age')) Out[6]: NoneType