动态参数
形参
位置参数*args: 接收所有的位置参数,定义的时候是聚合,获取一个元组,使用的时候是打散
def eat(*args): 聚合打包 print(args) 输出元组 eat('方便面','包子')
位置参数>动态位置参数
def eat(*args,a,b) 错误 def eat(a,b,*args) eat('方便面','包子')
关键字参数**kwargs:接收所有关键字参数,获取到一个字典,定义时聚合,使用时*kwargs打散字典的键
默认值参数>动态默认值参数
def func(b=1.**kwargs) 聚合为字典 print(*kwargs) 输出字典的键 print(b) eat(a=1,b=2,c=3)
万能函数
def func(*args,**kwargs): 等于号就是默认值/关键字参数,其他为位置参数 print(*args,*kwargs) (1,2,3,a,b,c) func(1,2,3,a=1,b=2,c=3)
print(func__doc__) 查看函数的注释
名称空间
找值:从里往外 局部空间>名称空间>内置空间
加载:从外往里 内置空间>名称空间>内置空间
a=10 def func(): a=20 print(a) print(globals()) 查看局部作用域内容 结果为 a=20 print(locals()) 查看全局作用域内容 a=10 func()
global+元素 从里往外修改全局元素
nonlocal+元素 修改离的最近上一层的变量值,上一层没有继续往外找,直到最外层局部