跳过"返回无"可以吗?

Tom*_*cki 42 python function return-value

我不知道在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)
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,当条件为假时,函数将返回None.

rse*_*nna 60

就像你说的那样,return None(几乎)从不需要.

但是你应该考虑到代码的意图更明确return None.请记住:一段代码也需要人类可读,并且明确通常会有所帮助.

  • @ dln385:除非None返回值*本​​身*有意义,否则不要"返回None".`__init__`的返回值*不是*有意义,因此不要显式返回None.如果你需要从`__init__`的中间返回,只需说`return`,并且不要在函数的末尾添加一个不必要的`return`. (7认同)
  • 人们嘲笑"禅宗的蟒蛇"让我不断评论downvotes.当它更清晰并且避免不必要的冗余时,隐含优于显式. (5认同)
  • 也有助于“遵守”`import this` :P (2认同)
  • "明确比隐含更好." (2认同)

Ned*_*der 25

为了阐述其他人所说的内容,我使用了一个return Noneif函数应该返回一个值.在Python中,所有函数都返回一个值,但通常我们编写只返回None的函数,因为它们的返回值被忽略.在某些语言中,这些称为程序.

因此,如果一个函数应该返回一个值,那么我确保所有代码路径都有一个返回值,并且返回值有一个值,即使它是None.

如果一个函数"没有"返回一个值,也就是说,如果某个人从未使用它的返回值调用它,那么没有返回就可以结束,如果我需要提前返回,我会使用裸形式,return.


pyf*_*unc 5

是和否.

在最简单的情况下,可以跳过 "return None",因为它仅在单个负面条件下返回None.

但是,如果存在嵌套条件评估和多个场景,其中函数可以返回None.我倾向于将它们包含在场景的可视化文档中.

[编辑:根据以下评论]

返回或返回无

我更喜欢"返回无"以显示"返回",因为它是明确的,后来,如果返回意味着返回None,那么没有人会怀疑,或者因为缺少某些内容而导致错误.


JAL*_*JAL 5

是的,如果 Python 函数不返回任何值,它将返回 None。因此,是否显式返回 None 是一个风格决定。

就我个人而言,为了清晰起见,我更喜欢始终返回一个值。