跳过“return None”可以吗?
我在想,如果不写return None
,会不会显得不礼貌,特别是在不需要的时候。
举个例子:
def foo1(x):
if [some condition]:
return Baz(x)
else:
return None
def foo2(x):
if [some condition]:
return Baz(x)
bar1 = foo1(x)
bar2 = foo2(x)
在这两种情况下,当条件为假时,函数都会返回None
。
8 个回答
6
是的,也不是。
在最简单的情况下,可以省略 "return None",因为它只在一个特定的负面条件下返回 None。
但是如果有嵌套的条件判断和多个可能返回 None 的情况,我通常会把它写上,作为 场景的可视化文档。
[编辑:根据下面的评论]
return 或 return None
我更喜欢写 "return None" 而不是单纯的 "return",因为这样更明确,以后就不会有人搞不清楚返回的是 None 还是因为缺少什么导致的错误。
27
为了更好地解释别人说的,我在函数应该返回一个值的时候,会使用 return None
。在Python中,所有的函数都会返回一个值,但我们经常写一些函数,它们只返回None,因为这些返回值并不被使用。在某些编程语言中,这种函数被称为过程。
所以,如果一个函数应该返回一个值,我会确保所有的代码路径都有一个返回,并且这个返回是有值的,即使这个值是None。
如果一个函数“没有”返回值,也就是说它从来没有被其他地方调用来使用它的返回值,那么可以不写返回值结束这个函数。如果我需要提前结束函数,我会用简单的 return
。
76
就像你说的,return None
(返回空值)几乎不需要用到。
但是你要考虑到,代码的意图用明确的return None
会更清晰。记住:代码不仅仅是给计算机看的,人也需要能读懂,而明确的写法通常会更有帮助。