当函数中的每个路径都有一个return语句时,不使用else语句是错误的吗?

时间:2017-06-30 00:43:23

标签: python pep8

我一直在努力改进代码的样式并确保它尽可能可读。

跳过其他人并获得回报会被视为不良做法吗?

例如:

if x == 1:
    return True
return False

而不是:

if x == 1:
    return True
else:
    return False

2 个答案:

答案 0 :(得分:0)

两种样式都有效,而python样式指南(PEP 8)也未指定任何一种首选项。

无论您决定使用哪种方式,都要与之保持一致。这将导致代码更易于阅读。

来自PEP 8

  

[...]代码的读取频率远高于编写代码。 [...]正如PEP 20所说,"可读性计算"。

     

风格指南是关于一致性的。与此风格指南的一致性非常重要。项目的一致性更为重要。一个模块或函数内的一致性是最重要的。

Programming recommendations下:

  

是:

def foo(x):
    if x >= 0:
        return math.sqrt(x)
    else:
        return None

def bar(x):
    if x < 0:
        return None
    return math.sqrt(x)

答案 1 :(得分:0)

我总是在没有影响的时候直接回来。

我没有找到关于此的参考,但这是我的愿景

因为有时候你可能需要做像

这样的事情
for spam in bacon:
    if spam == egg:
        return spam

但是如果你想避免在if声明中返回,你将不得不这样做:

return_value = None

from spam in bacon:
    if spam == egg:
        return_value = spam
        break

 return return_value

结果完全相同&amp;执行但只添加3条不相关的行,所以我终于认为当这种情况发生时我总是使用相同的规则:直接返回

关于for / if / return,问题不会太深,但这不是问题。