<p>我试图找出将<code>None</code>作为<code>dict.get</code>的默认值,但没有为<code>dict.pop</code>指定默认值的原因是什么</p>
<pre><code>{}.get('my_key')
# output: None
{}.pop('my_key')
# output: KeyError: 'my_key'
</code></pre>
<p>我认为没有<code>dict.pop</code>的隐式默认值的原因是因为您可能有值为<code>None</code>的键,因此,为了不混淆您的键是否在字典中,<code>dict.pop</code>的隐式默认值没有多大意义。但是,这个解释同样适用于<code>dict.get</code>,而不是:</p>
<pre><code>{'my_key': None}.get('my_key')
# output: None
# but doesn't tell you if the key is truly in the dictionary or not
</code></pre>
<p>读取键的精确值的方法是</p>
<pre><code>{}['my_key']
</code></pre>
<p>dict.get(key[,default])是try-get值,如果不返回“default”版本</p>
<pre><code>help(dict.get)
get(...)
D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None.
</code></pre>