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语句能更清楚地表达代码的意图。

python的空语句_Python 函数返回空值相关推荐

  1. python函数调用位置_python函数定义,调用,传参,位置参数及关键字参数,返回值

    使用函数是真正开始编程的第一步,函数y=f(x)我们并不陌生,对x进行一顿操作得到一个值y.给不同的x,进行相同的操作,得到相应的y值. 程序层面函数是执行特定任务的一段代码,将一段代码定义成函数并为 ...

  2. python中return返回值为函数名_Python函数返回值

    Python函数返回值教程 同时,Python 函数的返回值不需要在函数的签名上体现,只需要在函数体里面直接使用 return 语句返回即可. Python函数不返回值详解 语法 def func_n ...

  3. python函数返回多个值_python函数返回多个值的示例方法

    python可以返回多个值,确实挺方便 函数里的return只能返回一个值,但是返回类型是没是限制的 因此,我们可以"返回一个 tuple类型,来间接达到返回多个值". 例子是我在 ...

  4. Access数据库中Sum函数返回空值(Null)时如何设置为0

    在完成一个Access表中数据统计时,需要统计指定字段的和,使用到了Sum函数,但统计时发现,指定条件查询统计时有可能返回空值(Null),导致对应字段显示为空白,正常应显示为0.基本思路是在获取记录 ...

  5. python函数调用语句_Python函数定义和函数调用

    原标题:Python函数定义和函数调用 我们已经使用了一些python内建函数,比如print().input().str()等等. 也使用了一些python自带模块的一些库函数,比如math模块的a ...

  6. pythonget返回值_python 函数返回值

    Python 函数返回值 一.函数返回值 返回值作用: 一旦函数调用或执行,那么函数外部的程序,就没办法控制函数的执行过程.此时外部程序只能等待函数执行结果 为什么要等待? 因为外部程序要根据函数的执 ...

  7. python的基本原理_Python函数基本使用原理详解

    1.什么是函数 函数就相当于具备某一功能的工具 函数的使用必须遵循一个原则: 先定义 后调用 2.为何要用函数 1.组织结构不清晰,可读性差 2.代码冗余 3.可维护性.扩展性差 3.如何用函数 1. ...

  8. 【Python XPath】使用XPath返回空值

    使用XPath返回空值 再练习使用XPath来爬取数据时,出现了以下情况,本人由于想要快捷,直接使用浏览器复制,结果返回了空的列表,为了验证,本人去浏览器搜索栏查看 一开始以为是复制错了,就自己写全 ...

  9. python函数能返回列表吗_Python函数返回列表还是作为生成器工作?

    我正在尝试创建一个返回对象或作为生成器的函数. 这是一个坏主意,因为作为一种最佳实践,您希望函数可靠地返回相同类型的值,但为了科学的利益-- 我正在使用Python 2,因此range返回一个列表,x ...

  10. python中的map函数返回一个地址_python中的map函数

    1.对可迭代函数'iterable'中的每一个元素应用'function'方法,将结果作为list返回. 来个例子: >>> def add100(x): ... return x+ ...

最新文章

  1. 【2018.12.15】【考试总结】【模拟+逆序对+树状数组+贪心+multiset】爆零之旅
  2. C++ 创建快捷方式
  3. Android 角色时间戳
  4. 正则表达式matches_正则表达式在VBA中间是如何应用?正则表达式的实现方式?...
  5. windows doc快捷键
  6. 做arma模型步骤_互助问答第349期:关于ARMA预测模型的问题
  7. Window 的版本号管理策略
  8. FFmpeg安装(windows环境)
  9. CentOS6.5利用Docker部署ShowDoc
  10. NeHe OpenGL教程 01 创建OpenGL窗口
  11. [科普文] 搞 Web3 要学习哪些基础知识?
  12. iOS开发脚踏实地学习day14-绘图
  13. 记一次酷狗音乐API的获取,感兴趣的可以自己封装开发自己的音乐播放器
  14. 数制中为什么1代表负号
  15. 超稳定的接口——淘宝/天猫获得淘宝商品详情
  16. 正方形、长方形、立方体
  17. turtle绘画,设置画布的背景图片
  18. 路径规划学习之地图生成(一)
  19. 头发合成:手绘草图妙变逼真秀发
  20. PHP+Mysql制作一个学生成绩查询模块

热门文章

  1. BZOJ4399: 魔法少女LJJ
  2. es6入门到五连绝世之双杀(double kill)
  3. 量子计算学习笔记:量子计算发展史
  4. win10 初试tracert
  5. Oracle 卸载步骤详解
  6. java成语填充,java - 什么是“执行”这个成语?
  7. java要学多久_学会JAVA需要多长时间?
  8. 收集五款常用的HTML编辑软件
  9. 计算一幅图像的信噪比
  10. java开发实习报告_JAVA实习报告 (7000字)