1.动态传参:(*args,**kwargs)
*表示动态传参,可以接受所有的位置参数,传参的时候自动把实参打包成元祖给形参
** 表示接收关键字的动态传参,接收到的内容放在字典里
无敌传参
顺序:位置参数>*args>默认参数>**kwargs
在形参:*聚合成元祖 **聚合成元祖
在实参:* ,** 打散
2.名称空间:保存名字用的(变量,函数、类)
1.内置名称空间:python自己
2.全局名称空间:你写的代码 从上到下
3.局部名称空间:函数、类、方法、其他模块、对象
作用域:
全局作用域
内置+全局
局部作用域
局部名称空间
从局部找全局可以,但是从全局找局部是不可以的
globals() 查看全局作用域中的名字
locals() 查看当前作用域中的名字
3.函数的嵌套
每一层都会产生独自的空间名称
看竖线
4. global:在局部引入全局的内容, 没有可以创建一个变量为全局变量
nonlocal:在局部, 引入上一层名称空间中的变量, 如果没有, 继续上一层......
局部有相同变量,会改变上一层变量