函数动态参数和Python中的三种空间
-
动态参数 : *args
-
实参角度: 定义一个函数时, * 将所有的位置参数聚合到一个元祖中
-
顺序 : 位置参数 > * args > 默认参数 > **kwargs
-
接受所有参数 :
def fun (*args,**kwargs): print(args,kwargs) fun(11,2,sex = 3,)
-
在实参位置上给一个序列,列表,可迭代对象前面叫上*表示把这个序列按顺序打散,打散字典需要用**
-
在形参的位置上的*表示把接受到的参数组合成一个元组,
-
-
仅限关键字参数。(了解)
6.命名空间
- 从空间角度研究函数
- 全局空间名称 : py文件运行时所开辟的空间,存放的是执行的py文件(除去内部函数)的所有变量与值(地址)的对应关系,整个py文件结束之后,才会消失
- 临时(局部)名称空间 : 函数执行时,在内存中临时开辟的一个空间,存放的函数中的变量与值的对应关系,随着函数的结束而消失
- 内置名称空间 : input ,print 内置函数等
- 取值顺序加载顺序
- 加载顺序 : 上面三个空间,谁先加载到内存
- 内置名称空间--->>全局名称空间--->>(函数执行时)临时名称空间
- 取值顺序 : 就近原则
- 加载顺序 : 上面三个空间,谁先加载到内存
- 作用域
- 全局作用域 : 全局名称空间,内置名称空间
- 局部作用域 : 局部名称空间
- 内置函数
- globals : 查看全局作用域
- locals : 查看当前作用域
- 高阶函数(嵌套函数)