首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python 函数为什么会默认返回 None?

Python 有一项默认的做法,很多编程语言都没有——它的所有函数都会有一个返回值,不管你有没有写 return 语句。...不管有没有写 return,它们都会执行 return 的逻辑,而且默认的返回值就是 None。 那么,问题来了:Python 的函数为什么能默认返回 None 呢?它是如何实现的呢?...答案就在解释器中,当 CPython 解释器执行到函数的最后一个代码块时,若发现没有返回值,它就会主动地加上一个 Py_None 值返回(出自:compile.c): 也就是说,如果定义的函数没有返回值...,Python 解释器就会(强行地)默认给我们注入一段返回逻辑!...那么,这就会引出新的问题:Python 为什么要求函数都要有返回值呢?为什么它不像某些语言那样,提供一个 void 关键字,支持定义无返回值的空函数呢?

2.2K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    为什么Python中的None is None is None == True

    最近在StackOverflow上看到了一个问题,为什么Python中的None is None is None返回True,看到大家的讨论后对Python中的比较运算有了更深的认识。...None,而后者百分之百是False,因为True is None == False.然而问题的关键是is在Python中是比较运算符,而不是算数运算符。...括号在比较运算中并不是改变运算优先级,而是直接返回括号内比较运算的结果,这个结果只会是True或者False,而True和False已经不是原来比较的对象了。...那么Python是如何处理None is None is None的呢?...Python中连续进行比较运算的底层实现 上一节提到了(3 > 2) > 1在Python中是False,但是懂一点Python的人都知道3 > 2 > 1在Python中是合法的并且返回True,我们可以看一下这一个表达式在

    2.3K70

    Python 递归函数返回值为 None 的解决办法

    在使用 Python 开发的过程中,避免不了会用到递归函数。但递归函数的返回值有时会出现意想不到的情况。 下面来举一个例子: >>> def fun(i): ... ...return i ... >>> r = fun(0) >>> print(r) 比如上面这段代码,乍一看没什么问题,但返回值并不是我们期望的 5,而是 None。...>>> print(r) None 要解决这个问题也简单,就是在执行递归调用的时候,加上 return 语句。 修改之后的代码如下: >>> def fun(i): ... ...---- 推荐阅读: 计算机经典书籍 技术博客: 硬核后端开发技术干货,内容包括 Python、Django、Docker、Go、Redis、ElasticSearch、Kafka、Linux 等。...面试题汇总: 包括 Python、Go、Redis、MySQL、Kafka、数据结构、算法、编程、网络等各种常考题。

    71600

    【Python】函数 ④ ( 函数 None 返回值 | None 值应用场景 | 用于 if 判断 | 定义无初始内容变量 | 代码示例 )

    一、函数 None 返回值 1、空返回值 在 Python 函数中 , return 返回值是可选的 , 函数可以没有返回值 ; def 函数名(函数参数): """函数文档字符串(可选)"""...# 函数体 # return 返回值 (可选) Python 函数中没有显示定义返回值 , 那么返回的就是 特殊字面量 None , 其类型是 ; None...表示没有实际意义 , 返回空 , 不需要处理返回值信息 ; Python 中返回 None 相当于 Java / C / C++ 中的 void Kotlin 中的 Unit 等 空返回值 ; 2、代码示例...return 关键字返回 None 在该示例中 , 比上一个示例多了 return None 返回值 , 其执行效果与没有返回值一模一样 ; 代码示例 : """ 接收 函数 None 返回值示例 ""...None 二、None 值应用场景 ---- 1、None 值应用场景简介 函数 None 返回值应用场景 : 函数返回值 : 表示函数没有返回值 ; 用于 if

    45420

    python: vs None,is vs ==

    字符串为None None在Python中是一个特殊的单例对象,用于表示缺失值或者空值。None不是字符串类型,其类型为NoneType。...作为函数返回值,表示函数没有合适的值可以返回。 比较:"" vs None ""是一个空的字符串对象,None是一个特殊的空值。...(None)) # 输出:字符串是None print(check_string("hello")) # 输出:字符串是非空的 希望这里的解释能帮助您更好地理解Python中空字符串和None的区别和用途...使用is None 当使用is None时,是确切地检查一个对象是否是None。 在Python中,None是一个单例对象,这意味着在任何时候都只有一个None对象。...class MyObj: def __eq__(self, other): return True s = MyObj() if s == None: # 这里会返回 True

    22930

    深入理解Python中的None

    Python中的None是一个经常被用到的知识点,但是很多人对于None的内涵把握的还是不够精确,今天就和我一起好好理解下这个小知识点吧。...比如有一个变量a,那么if not a和if a is None两者有区别吗?如果说没有区别,那么不管a为何值时,这两个判断语句会返回相同的结果,但事实是这样吗?...print('F') if a is None: print('S') else: print('F') S S 运行代码发现,结果是一样的,这是由于我们调用函数时,会返回None...方法,我们会发现,如果len方法返回0,那么对象布尔值是False,如果返回其他数字则是True,但是len方法下面的return只能返回整形和布尔值,其他的返回值,比如字符串、浮点数,都会报错的,有兴趣的同学可以验证一下...因为我们都知道,Python中False相当于0,True相当于1,但这里如果我们将False改为0,那么结果会出错,如下 TypeError: __bool__ should return bool,

    1.7K20

    Python 编程语言中的 None 到底是什么?

    让我们一起深入了解 Python 中的 None。 什么是 None? 在 Python 编程语言中,None 是一个特殊的常量,它代表了 “无” 或 “没有值”。...None 在 Python 编程中有多种用途,其中一项重要的应用是作为函数的默认返回值。当一个函数没有明确的返回语句,或者 return 语句没有指定返回值时,Python 将自动返回 None。...这个特性使得 None 成为检查函数返回结果是否有意义的有力工具。例如,如果一个函数旨在查找某个值,但找不到时,它可以返回 None,调用者就可以根据返回值是不是 None 来判断查找是否成功。...它可以用来作为函数返回值的类型提示,表示函数不返回任何值。虽然这在函数实际上返回 None 的情况下是隐含的,但明确指出函数返回 None 可以提高代码的可读性。...它在函数返回值处理、参数默认值设置以及类型注解中都扮演着关键角色,是 Python 语言不可或缺的一部分。理解和正确使用 None 对于编写清晰、高效的 Python 代码非常重要。

    35300

    「Python」身份运算符is 与 is not——判断None应该使用is

    在python中有两个身份运算符,一个是is另外一个是is not。作用:身份运算符用于比较两个对象的内存地址是否一致——是否对同一个对象的引用。在python中针对None比较时,建议使用is判断。...# 变量b地址a.append(4)print(a)print(a is b)print(a == b)执行结果:图片----二、修改士兵突击面向对象封装案例在之前的面向对象封装士兵突击案例中就用到了None...姓名 self.name = name # 2. qiang = 新兵没有枪 self.gun = None def fire(self):...判断是否有枪 if self.gun == None: print("[%s]还没有qiang" % self.name) return...sharedUid=9226637#2.3更多关于Python基础教程和进阶知识都可以去Python自学网学习,还有Python学习路线讲解。

    87210
    领券