在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
Python 函数默认返回None是什么原因?定义的函数没有返回值,Python 解释器就会强行地默认给注入一段返回逻辑!实际上 Python 中有很多行为都是隐性的。
Python 有一项默认的做法,很多编程语言都没有,所有函数都会有一个返回值,不管有没有写 return 语句。
在正式开始之前,用pass语句 和 …对象 作为例子,看下 Python 的函数返回值:
定义的两个函数都没有写任何的 return 语句,但是在函数调用后,都能取到一个返回值。执行效果跟直接写 return 语句相比,是完全相同的:
这 4 个例子属于两种类型:一种没有写 return,但是都有隐藏的 return 返回值;一种写了 return,而且实际也有返回值。也就是说,后者在语义和行为上表现一致,前者虽然在语义上缺失,但是却有实际的行为和结果;后者的行为是显性的,前者却是隐性的。
《Python之禅》中有一句“显性胜于隐性(Explicit is better than implicit)”,但是,出于简洁和便利的考虑(Simple is better than complex),实际上 Python 中有很多行为都是隐性的,会把一些在语法层面的事交给解释器去完成。
真值判断 是隐性的行为,本文前两个例子也是如此。
使用dis查看字节码,就可以看到其背后的变化:
在这个对比图中,可以看出上述 4 个函数的解释器指令一模一样!
不管有没有写 return,它们都会执行 return 的逻辑,而且默认的返回值就是 None。
那么问题来了:Python 的函数为什么能默认返回 None ?如何实现的?
答案就在解释器中,当 CPython 解释器执行到函数的最后一个代码块时,若发现没有返回值,它就会主动地加上一个 Py_None 值返回:
如果定义的函数没有返回值,Python 解释器就会(强行地)默认给我们注入一段返回逻辑!
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Python开发在线教育机构怎么选?
Python开发在线教育机构怎么选?随着互联网技术的不断发展,现在很多的教育机构都开设在线教育平台。解决了很多的学生想学习但是却又因为时间和地域的问题无法参加Python开发培训的问题,所以在线教育的发展很好的解决了这个问题。
7259
2019-08-08 10:23:31
自学Python基础语法学习总结
随着人工智能的崛起和快速发展,Python成为众多编程自学者的首选语言。本文整理了定义变量、字符串、运算符、if语句、循环语句、列表、字典、元组、函数、文件操作等等Python基础语法知识点,希望下面的学习总结可以帮助大家快速掌握Python编程,现在我们一起来梳理一遍吧!
5495
2019-10-17 14:41:43
数据分析工具Pandas简介
随着大数据和人工智能的发展,数据分析行业迎来了历史最高人才需求点。在当下这个大数据广泛应用于各个行业的时代,要想成为企业争抢的人才精英,掌握数据分析能力显得尤为重要。简单来说,数据分析的能力也包括了对数据分析工具的掌握。Pandas就是很好的数据分析工具,可以说学会了Pandas就开启了数据科学的大门。下面来看一下数据分析工具Pandas的简介。
5326
2019-11-15 10:29:11
Python初学者为什么要选择Jupyter?
相信学习过编程的你,对于编译器肯定是不陌生的,一定使用过 Pycharm、VScode 等知名 IDE 工具,但今天本文要讲解的并不是这些,而是一款在 IT 界享誉盛名的神级 Web 编辑器——Jupyter,那么,Python初学者为什么要选择Jupyter呢?简单来讲,它不用安装,不用激活,功能强大,方便迭代更新!下面我们一起来了解一下Jupyter的起源、核心特点以及优势。
9808
2020-08-18 11:46:59
用Python编程需要什么软件?
用Python编程需要什么软件?Python编程是一门适合新手入门的编程语言,现在有不少程序员业余时间学习Python编程语言,学习Python找到好工具会大大提高学习的效率。好用的Python编程软件能将工作效率多倍速提升。
3970
2020-12-21 14:57:20