python的空语句_Python 函数返回空值

Python 函数返回空值,Python在所有函数的末尾添加了隐式的return None语句。因此,如果函数没有指定返回值,默认情况下会返回None。

这意味着可以用纯return语句替换return None语句,也可以直接不写return语句,结果完全相同:

def foo1(value):

if value:

return value

else:

return None

def foo2(value):

"""纯return语句,相当于`return None`"""

if value:

return value

else:

return

def foo3(value):

"""无return语句,也相当于`return None`"""

if value:

return value

如果向2这三个函数都传递假值,那么三个函数都能正常返回None:布尔计算为False的值。

>>> type(foo1(0))

>>> type(foo2(0))

>>> type(foo3(0))

那么,什么情况下才应该在自己的Python代码中使用这个特性呢?

我的经验法则是,如果函数(有些语言将其称为过程)没有返回值,那么就忽略返回语句。在这种情况下添加返回语句不仅多余,而且会带来混乱。比如Python的内置print函数就是一个过程,调用print只是为了使用函数的副作用(打印文本),永远都不是为了获得该函数的返回值。

再来看看Python内置的sum函数。这个函数显然具有一个逻辑返回值,并且通常不会仅为其副作用而调用sum。sum的目的是将一系列的数相加,然后传递结果。因此,如果一个函数从逻辑的角度来看有返回值,那么要自行决定是否使用隐式返回语句。

一方面,有人认为省略显式的return None语句能让代码更简洁,因而更易于阅读和理解。主观上也可以说这让代码“更漂亮”了。

另一方面,有些程序员很惊讶Python有这样的行为。在编写干净和可维护的代码时,出乎意料的行为通常并不是一个好兆头。

一个代码示例使用了“隐式返回语句”。代码中没有对此进行说明,本意只是想用一个简短的代码示例解释Python中的其他功能。

然而最终我收到了源源不断的电子邮件,向我指出该代码示例中“缺少return语句”。显然,并不是每个人都清楚理解Python的隐式返回行为,而且它在这个示例中还会令人分心。因此我又添加了一个注释来说明,之后就没有再收到这些电子邮件了。

不要误会,我也喜欢写出干净且“美丽”的代码。同时,我也强烈认为程序员应该清楚地了解正在使用的语言中有何细节。

不过,考虑到即使这种简单的误解对维护也有很大的影响,最好写出更明确清晰的代码,毕竟代码具有沟通作用。

Python 函数返回空值 关键要点

如果函数没有指定返回值,则返回None。是否明确地返回None是风格方面的问题。

返回空值是Python的核心功能,但是使用显式的return None语句能更清楚地表达代码的意图。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值