如果必须返回布尔值,我的函数是否应该返回False?

Nic*_*ick 4 python boolean nonetype

写作有什么好处:

def contains(lst, n):
  for x in lst:
    if x == n:
      return True
  return False
Run Code Online (Sandbox Code Playgroud)

代替:

def contains(lst, n):
  for x in lst:
    if x == n:
      return True
Run Code Online (Sandbox Code Playgroud)


请注意,在第二个示例中,缺少最后一行代码,而函数返回None而不是False.

旁注:我知道我应该写n in lst,这只是一个例子.

NPE*_*NPE 5

我认为这在某种程度上取决于个人喜好.

我个人总是更喜欢前者而不是后者,因为"明确比隐含更好".

此外,如果函数预期返回a bool,我认为返回a更清晰,bool而不是其他一些对象的真实性需要进行评估以获得a bool.