首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

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

    它们的执行效果跟直接写 return 语句相比,是完全相同的: 这 4 个例子属于两种类型:一种没有写 return,但是都有隐藏的 return 返回值;一种写了 return,而且实际也有返回值。...不管有没有写 return,它们都会执行 return 的逻辑,而且默认的返回值就是 None。 那么,问题来了:Python 的函数为什么能默认返回 None 呢?它是如何实现的呢?...答案就在解释器中,当 CPython 解释器执行到函数的最后一个代码块时,若发现没有返回值,它就会主动地加上一个 Py_None 值返回(出自:compile.c): 也就是说,如果定义的函数没有返回值...,Python 解释器就会(强行地)默认给我们注入一段返回逻辑!...那么,这就会引出新的问题:Python 为什么要求函数都要有返回值呢?为什么它不像某些语言那样,提供一个 void 关键字,支持定义无返回值的空函数呢?

    2.9K40

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

    最近在StackOverflow上看到了一个问题,为什么Python中的None is None is None返回True,看到大家的讨论后对Python中的比较运算有了更深的认识。...None is None is None 不同于 (None is None) is None 题主和很多人一开始都认为None is None is None就等同于(None is None) is...括号在比较运算中并不是改变运算优先级,而是直接返回括号内比较运算的结果,这个结果只会是True或者False,而True和False已经不是原来比较的对象了。...Python中连续进行比较运算的底层实现 上一节提到了(3 > 2) > 1在Python中是False,但是懂一点Python的人都知道3 > 2 > 1在Python中是合法的并且返回True,我们可以看一下这一个表达式在...is None is None就是None is None and None is None,结果是True也就没什么问题了。

    2.8K70

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

    # 函数体 # return 返回值 (可选) Python 函数中没有显示定义返回值 , 那么返回的就是 特殊字面量 None , 其类型是 ; None...- 接收 None 返回值 下面的代码中 , hello 函数没有使用 return 关键字 返回 返回值 ; 该 hello 函数 没有显示定义 返回值 , 实际上该函数返回的是 None 返回值...; 使用变量接收该函数的返回值 , 返回值是 None , 返回值类型是 NoneType ; 代码示例 : """ 接收 函数 None 返回值示例 """ # 定义无返回值的函数 def hello...return 关键字返回 None 在该示例中 , 比上一个示例多了 return None 返回值 , 其执行效果与没有返回值一模一样 ; 代码示例 : """ 接收 函数 None 返回值示例 ""...None 二、None 值应用场景 ---- 1、None 值应用场景简介 函数 None 返回值应用场景 : 函数返回值 : 表示函数没有返回值 ; 用于 if

    1.3K20

    Python 函数返回值别漏标!显式声明 None 的 3 大好处

    显式声明 None 的 3 大好处很多刚写 Python 的朋友,甚至有些老开发者,都会犯一个 “不起眼” 的错:函数明明没有返回值(比如只做打印、保存数据这类操作),却不明确标注返回None。...而显式声明-> None,就是给这个工具 “指路”,让它知道你这个函数就该返回None,一旦返回了别的东西,马上报错。...用表格更直观:显式声明 vs 隐式声明的区别对比维度 显式声明返回 None(def func () -> None)隐式返回 None(def func ())可读性 高:一眼知道 “无返回值”...错误 1:隐式返回 None,却标注了其他类型比如函数实际没返回值(返回 None),但类型注解标了-> str,mypy会报错,自己也容易误解:# 错代码:实际返回None,却标了-> strdef...,函数返回 None。

    30410

    【云+社区年度征文】PySimpleGUI一个建立在tkinter之上更简单但功能强大的GUI

    [1peQ4f.png] 五、窗口响应的返回值是列表还是字典?...5.2例1返回值为列表(list) import PySimpleGUI as sg layout = [[sg.Text("姓名"), sg.InputText("浪迹天涯")], [sg.Text(...5.4小结 从上面两个小例子可以看出,当你给程序中的控件指定了关键字标识时,界面对用户行为的返回值是以字典(dict)的形式给出,而当用户不加任何key关键字时,界面对于用户行为的返回值是列表(list...,当然只需要返回stdout和stderr即可。...但是遇到问题我们就要来查找,通过对程序的调试,发列在PySimpleGUI的源代码中Drawpoint这个函数在返回时,没有返回所创建的对象id,所以造成创建成功后只返回了None,于是该对象无法移动,

    5.6K12
    领券