1.函数进阶:
函数动态参数: 动态位置参数 *args 动态关键字参数 **kwargs 位置 > 动态位置参数 > 默认(关键字)参数 > 动态关键字参数
2.命名空间
局部命名空间 全局命名空间 内置命名空间
加载顺序: 内置 > 全局 > 局部 取值顺序: 局部 > 全局 > 内置 作用域: 全局作用域: 内置 + 全局 局部作用域: 函数局部
3.函数的嵌套
def f(): print(11) def f1(): print(22) def f2(): print(33) ********** f2() f1() f()
4.global and nonlocal
global # print(id(lst)) # def func(): # # a = 15 # 在函数的局部中 # # global se # # lst[0] = 11 # # print(a) # 使用的是局部 # func() # print(lst) # print(id(lst)) # 可变数据类型在函数中可以直接操作,不可变数据类型才需要使用global
nonlocal # a = 10 # def f(): # a = 1 # a = 2 # def f1(): # # a = 4 # a = 2 # def f2(): # # nonlocal a # # a = 2 # print(a) # 2 # f2() # print(a) # 2 # f1() # print(a) # 2 # f() # nonlocal 改变最近的父级变量, 如果上级没有能够改变的就继续向上走,直到最外层函数就停止了.