使用条件时,使用Python返回内容的正确方法是以下哪一项?有关系吗?为什么?
# OPTION 1
if conditional:
return a
else:
return b
# OPTION 2
if conditional:
return a
return b
答案 0 :(得分:14)
正确的 Python方式是:
return conditional
"Simple is better than complex"还记得吗? :)
关于您编辑过的问题,我会使用# OPTION 2
因为"Flat is better than nested."而此解决方案会保存缩进级别。在以下情况下,您会对此表示赞赏:
return b
实际上是这样的:
return very_long_and_unwieldy_name_that_you_cannot_change
此外,在这种情况下else:
是不必要的(语法上和视觉上)和冗余;它只是浪费空间。
也就是说,您可能需要考虑使用conditional expression代替:
return a if conditional else b
当a
,conditional
和b
都很好而且很短时,这是一种非常简洁和优雅的选择。
答案 1 :(得分:0)
我认为这可能是一个棘手的问题。第一个是不语法正确:
if conditional:
return True
else
return False
在Python中,else
子句与引入套件的任何其他子句一样,必须以:
字符结尾。
如果你解决了这个问题,那么它们在语法上都是有效的,并且在语义上都是有意义的。事实上,他们的意思是一样的。他们甚至可以编译成几乎相同的代码,除了第一个代码可能会导致Python为第三个代码生成一些额外的代码"从函数的末尾开始#34;永远不会被召唤的案件。
但是,正如iCodez's answer所解释的那样,这两种都是反模式;只是return conditional
或return bool(conditional)
,视情况而定。
请注意,即使在评估conditional
引发异常的情况下,不同的可能性仍然都是等效的(直到回溯的内容) - 他们全部都是只是举起那个例外。