擅长:python、mysql、java
<p>是的,我认为返回一个空的dict(或者在适用的情况下返回一个空列表)比不返回任何更好,因为这样可以避免在客户端代码中进行额外的检查。</p>
<p>编辑:
添加一些代码示例以详细说明:</p>
<pre><code>def result_none(choice):
mydict = {}
if choice == 'a':
mydict['x'] = 100
mydict['y'] = 1000
return mydict
else:
return None
def result_dict(choice):
mydict = {}
if choice == 'a':
mydict['x'] = 100
mydict['y'] = 1000
return mydict
test_dict = result_dict('b')
if test_dict.get('x'):
print 'Got x'
else:
print 'No x'
test_none = result_none('b')
if test_none.get('x'):
print 'Got x'
else:
print 'No x'
</code></pre>
<p>在上面的代码中,check<code>test_none.get(x)</code>抛出一个<strong>AttributeError
result_none方法可能返回none。为了避免这种情况,我必须添加一个
附加检查,并可能将该行重写为:
<code>if test_none is not None and test_none.get('x')</code>根本不需要
如果方法返回一个空dict。如示例所示,检查<code>test_dict.get('x')</code>工作正常,因为方法<code>result_dict</code>返回一个空dict</p>