python函数可以没有return语句,不返回值(python函数可以没有返回值吗)

python函数可以没有return语句,不返回值(python函数可以没有返回值吗)函数与过程 大多数语言都会有以下定义 函数 function 有返回值 过程 procedure 是简单的特殊的没有返回值的一个特殊函数 python 中只有函数没有过程 函数有 return 的话就返回值 没有 return 的话就返回 None 说明 hello 没有 return 所以 temp 没有值 不会显示不代表没有返回值 即使 hello 没有 return 也会返回一个 None 对象

大家好,我是讯享网,很高兴认识大家。



函数与过程

大多数语言都会有以下定义:

函数(function):有返回值

过程(procedure):是简单的特殊的没有返回值的一个特殊函数

python中只有函数没有过程。

函数有return的话就返回值,没有return的话就返回None。

python函数可以不返回值吗 python函数可以没有return吗_python函数可以不返回值吗
讯享网

说明:hello()没有return,所以temp没有值。不会显示不代表没有返回值。即使hello()没有return,也会返回一个None对象。所以 python中函数都有返回值。

python函数返回值会动态的自动确定类型。

python没有变量,只有名字。换言而知,包括python函数的返回值也不用关注数据类型。

注意:元组的关键是逗号而不是小括号

二、函数变量的作用域:变量的可见性

1、局部变量local

在函数里定义的参数以及变量都为局部变量,在函数外不可使用

2、全局变量global

函数外定义的变量在整个代码段,整个文件,整个模块。全局变量在函数中也可使用。

注意:如果在函数内试图去修改全局变量的话,python会自动创建一个新的局部变量代替,名字和全局变量相同。但两个变量实际上是两个互不影响的变量,存储空间不同。python会自动屏蔽新创建的局部变量而保护全局变量。所以不要轻易的在函数中修改全局变量,可以访问。全局变量的使用要谨慎。 

经典例子:

python函数可以不返回值吗 python函数可以没有return吗_全局变量_02

说明:函数外部的a为全局变量,函数内部的a为新创建的同名局部变量。return a中的a为新创建的a,a都没有初始值,所以返回肯定会出错。

若想在函数外使用函数内部的局部变量,只需在函数内部定义变量前面加上global关键字就行。

三、内嵌函数和闭包

1、内嵌函数(内部函数):允许在函数内部创建另一个函数

python函数可以不返回值吗 python函数可以没有return吗_局部变量_03

说明:内部函数整个作用域都在外部函数之内,内部函数的定义和调用都在外部函数之内,出了外部函数之外,就没有任何队fun2的调用了

2、闭包:函数式编程的一个重要语法结构

编程范式:借用哲学的术语,如果说每个编程者都在创造虚拟世界,那么编程范式就是他们置身其中自觉不自觉采用的世界观和方法论。

面向对象和面向过程。l

函数式编程:百度

闭包:从表现形式上定义为,如果在一个内部函数里,对外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就会被认为是闭包。

python函数可以不返回值吗 python函数可以没有return吗_局部变量_04

注意:不能在外部函数的外部对内部函数进行调用

外部函数的局部变量和内部函数的局部变量就像之前全局变量对于函数中的局部变量。所以此时 内部函数可以对外部函数中的局变量进行访问,但不能对他进行修改。

python函数可以不返回值吗 python函数可以没有return吗_内部函数_05

说明:这里内部函数新创建的同名变量没有初始值,所以返回会报错。因为内部函数之外的变量已经被屏蔽掉了。

—python3之前:无法解决,只能间接的通过容器类型。容器类型是存在在栈里面,变量不会被屏蔽掉。

容器类型:列表、元组之列的什么都可以扔进去

python函数可以不返回值吗 python函数可以没有return吗_局部变量_06

—python3:用nonlocal关键字声明x不是一个局部变量

python函数可以不返回值吗 python函数可以没有return吗_全局变量_07

小讯
上一篇 2025-06-11 07:55
下一篇 2025-05-21 12:48

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/174052.html