python做网站登录,php网站开发报告书,湖南禹班建设集团有限公司网站,网上店铺怎么运营Python 有一项默认的做法#xff0c;很多编程语言都没有——它的所有函数都会有一个返回值#xff0c;不管你有没有写 return 语句。本文出自“Python为什么”系列#xff0c;在正式开始之前#xff0c;我们就用之前讨论过的 pass语句和 …对象 作为例子#xff0c;看看 P…Python 有一项默认的做法很多编程语言都没有——它的所有函数都会有一个返回值不管你有没有写 return 语句。本文出自“Python为什么”系列在正式开始之前我们就用之前讨论过的 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 值返回出自compile.c也就是说如果定义的函数没有返回值Python 解释器就会强行地默认给我们注入一段返回逻辑对于解释器的这种附赠的服务大家是觉得很贴心还是嫌弃它多事呢这样的做法似乎没多少好处但似乎也没有坏处大家有什么疑问可以后台留言或评论哦