Ptthon基础语法08 作用域 回调函数 返回函数 闭包 递归函数

本文详细介绍了Python中的作用域,包括局部、全局、嵌套和内置作用域,以及变量搜索规则。此外,讲解了回调函数的概念,通过示例展示了如何将函数作为参数传递。还探讨了返回函数和闭包,特别是闭包的特点和装饰器的应用。最后,文章提到了递归函数,讨论了递归函数的工作原理和注意事项。
摘要由CSDN通过智能技术生成

变量的作用域:

在python程序中,我们变量的创建,更改以及删除都是在一个内存的命名空间中进行的,我们称这个命名空间为作用域
简单来说:作用域就是变量能使用的范围。

在python中定义的变量并不是在任何位置都可以使用的,它能使用的范围取决于变量定义的位置。

局部作用域:在函数体内部定义的变量都会产生一个新的局部作用域。
比如def模块中定义的,lambda中定义的变量。

嵌套作用域:函数体中又嵌套了一个函数,外函数的作用域称之为嵌套作用域

全局作用域:在当前.py文件中定义变量,定义在函数体之外的。

内置作用域:系统定义的,每个.py文件都可以使用的。

变量的划分:
局部变量:定义在函数体内部的变量我们称之为局部变量,
作用的范围:当前函数的函数体

全局变量:定义在.py文件中,并且定义在函数体外部的边变量我们称之为全局变量
作用范围:当前整个.py文件

内置变量:系统定义的
作用范围:项目中所有的.py文件

局部变量的生成以及销毁的时间:
当函数执行的时候生成,当函数执行结束则该变量销毁。

全局变量

变量搜索的规则:
先搜索局部作用域>嵌套作用域>全局作用域>内置作用域
若这几个作用域中都不存在此变量,这时候则报错。

global 关键字

使用global可以声明此变量为全局变量,在声明之后,可以在函数体内部
更改我们的全局变量,
若不声明的话,注意这个就不是更改,而是在函数内部创建了一个同名的局部变量而已。

结论:
在python中只有我们的模块,类以及函数的定义会产生新的作用域,而其他的语句块
比如if/else,try/except,while/for这些语句不会产生新的作用域,它的意思是
在这些语句块中定义的变量在外部是可以使用的。

for x in range(10):
pass

print(x)

num1 = 30

def outer():
num1 = 400
def func():
num = 20
global num1
num1 = 300
print(num1)
return func

outer()()
print(num1)

回调函数:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值