. 动态参数
位置参数的动态参数 : *args
# 顺序:位置参数 > *动态参数 > 默认值参数
# def chi( *food): # 可以传入任意的位置参数 # print("我要吃", food) # 动态参数接收到的是tuple类型的数据 # # chi("盖浇饭", "辣条", "面条")关键字参数的动态参数 : **kwargs
# **关键字参数
# def func(**food): # **food动态接收关键字参数 # print(food) # 接收到的是字典 # # func(good_food="盖浇饭", bad_food="辣条", drink="冰封")顺序:
位置,*args,默认值,**kwargs(动态接收关键字参数,形成字典)
在形参上*聚合, **聚合
在实参上*打散, **打散
2. 命名空间和作用域
命名空间:
1. 内置命名空间: python解释内部运行时的变量函数
2. 全局命名空间: 我们在py文件中直接声明出来的变量,函数
3. 局部命名空间: 在函数内部声明的变量和函数.
作用域:
1.全局作用域:内置+全局
2.局部作用域:局部
globals() 查看全局作用域中的名字
locals() 查看当前作用域中的名字
3. global和nonlocal
global: 把全局变量拿到局部来用.
nonlocal: 把离他最近的一层的变量拿过来.不会找全局