python3函数进阶
1.命名空间和作用域
命名空间
加载
内置命名空间
python解释器自带的变量和函数
开启python解释器自动加载内置命名空间
全局命名空间
程序从头到尾的自定义变量和函数
从头到尾加载
局部命名空间
函数内部的自定义变量和函数(内嵌函数)
当函数被调用时,创建该函数的局部命名空间,当函数执行结束时,回收命名空间
取值
顺序:局部命名空间——>全局命名空间——>内置命名空间
作用域
全局作用域
包含:内置命名空间、全局命名空间
局部作用域
局部命名空间
打印全局作用域的值:print(globals())
打印当前作用域的值:print(locals())
在函数内部,对全局变量进行修改(自加等),需要加在函数内部加 global关键字定义变量
对应不可变数据类型局部可以查看全局,不可以修改全局
2.嵌套函数和作用域链
嵌套函数
函数的调用
函数的定义
作用域链
由内到外
nonlocal
用在嵌套函数中,修改他上一次的局部变量,只用在局部变量
在内部函数中,修改外部函数的变量
3.函数名的本质
指向一个内存地址,可以看作是变量
赋值,既被引用
当函数的参数、返回值
可以当容器类型(可变数据类型)的参数
4.闭包
定义:嵌套函数,并且内部函数调用,外部函数的变量,内部函数是闭包
判断闭包函数的方法:打印函数名.__closure__,有cell
def f1():a = 1
def f2():
print(a)
return f2
res = f1()
res()
以上是 python3函数进阶 的全部内容, 来源链接: utcz.com/z/387622.html