动态位置参数以及动态关键字参数:
位置 关键字 动态位置 动态关键字
def func(a,*args,b,**kwargs):
print(a,b,args,kwargs)
func(1,2,3,4,bb=1,cc=3,)
函数:
动态:
动态位置参数 *args
动态关键字参数 **kwargs
位置 > 动态位置参数 > 默认(关键字)参数 > 动态关键字参数
函数的嵌套:
def f():
# a = 10
# print(a)
# def f1():
# b = 20
# print(b)
# f1()
# f()
局部空间:
def func(): # 函数里的是局部空间
# b = 5
# print(b)
#print() #内置的就是python本身自带的东西
# input() #内置python本身自带的东西
print(locals()) # 查看局部作用域中的变量和内容
print(globals()) # 查看全局作用域中的变量和内容
名称空间:
2. 名称空间:
局部命名空间
全局命名空间
内置命名空间
加载顺序:
内置 > 全局 > 局部
取值顺序:
局部 > 全局 > 内置
作用域:
全局作用域:
内置 + 全局
局部作用域:
函数局部
global与nonlocal:
global:
可变数据类型在函数中可以直接操作,不可变数据类型才需要使用global
nonlocal:
nonlocal 改变最近的父级变量, 如果上级没有能够改变的就继续向上走,直到最外层函数就停止了.
函数: 将一个需求封装后调用,优点:除去重复代码.