哪个Python条件返回语句是最Pythonic?

Jos*_*h.F 8 python conditional return conventions function

在使用条件时,使用Python返回内容的正确方法是以下哪一种?有关系吗?为什么?

# OPTION 1
if conditional:
    return a
else:
    return b


# OPTION 2
if conditional:
    return a
return b
Run Code Online (Sandbox Code Playgroud)

iCo*_*dez 16

适当的 Python的方法是:

return conditional
Run Code Online (Sandbox Code Playgroud)

"简单比复杂更好"还记得吗?:)


关于你编辑的问题,我会使用,# OPTION 2因为"Flat比嵌套更好".并且此解决方案可以保存缩进级别.你会在以下情况下欣赏这个:

return b
Run Code Online (Sandbox Code Playgroud)

实际上是这样的:

return very_long_and_unwieldy_name_that_you_cannot_change
Run Code Online (Sandbox Code Playgroud)

此外,else:在这种情况下,不需要(语法上和视觉上)和冗余; 它只是浪费空间.

也就是说,您可能需要考虑使用条件表达式:

return a if conditional else b
Run Code Online (Sandbox Code Playgroud)

这是一个非常简洁大方替代时a,conditionalb都不错,很短.

  • 如果`conditional`没有产生严格的布尔值并且你想要那个,那么`return bool(conditional)` (3认同)
  • +10000000000000如果我能......这是一个糟糕的模式(在OP中),我一直在看 (2认同)