擅长:python、mysql、java
<p>只需尝试常见情况并捕获异常通常比首先显式测试罕见的拐角情况要好得多:</p>
<pre><code>try:
variable = myDict.get('thisKey')
except AttributeError: # when myDict is None
variable = None
</code></pre>
<p>这并不短,但在我看来,这比把东西塞进一行要清楚。如果要多次重复这些行,可以编写一个小函数:</p>
<pre><code>def my_get(dictionary, key, default=None):
"""lookup key in dictionary. Returns default
when key is missing or dictionary is None"""
try:
return dictionary.get(key, default)
except AttributeError: # when dictionary is None
return default
</code></pre>
<p>快速测试:</p>
<pre><code>In [19]: myDict = None
In [20]: my_get(myDict, 'key', 5)
Out[20]: 5
In [21]: myDict = {}
In [22]: my_get(myDict, 'key', 5)
Out[22]: 5
In [23]: myDict = dict(key=66)
In [24]: my_get(myDict, 'key', 5)
Out[24]: 66
</code></pre>