跳过“return None”可以吗?

56 投票
8 回答
38146 浏览
提问于 2025-04-16 06:07

我在想,如果不写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会更清晰。记住:代码不仅仅是给计算机看的,人也需要能读懂,而明确的写法通常会更有帮助。

撰写回答