可变长度参数
站在实参的角度,实参是用来为形参赋值的,如果实参的个数不固定,那么必须要有形参能够接受溢出的值
*与**在形参中的应用
在形参中的*args和**args
*args:将传进来多余的位置实参,集合成元组的形式
**kwargs:将传进来多余的关键字实参,集合成字典的形式
在实参中*,**的作用
*可变类型的位置实参用for循环打散成位置实参
**会将其后的字典类型实参打散成关键字实参
函数的嵌套
定义在函数内函数的特点是,一般情况下只能在函数内调用
名称空间与作用域
三种名称空间:
内置名称空间:python内置的名字
周期:python解释器启动时开始 python解释器结束后销毁
全局名称空间:用来存放顶级名字的名称空间
周期:程序开始时存活,程序结束时则销毁
局部名称空间:定义在函数内的名字
周期:函数调用时开始,结束时销毁
重要结论:名称空间的嵌套关系是在函数定义时就已经确定死了,与函数的调用位置无关。
作用域:全局作用域:内置名称空间与全局名称空间
局部作用域:局部名称空间 特点:临时存活,局部有效
global 可以将函数内的变量名,变为全局变量名
nonlocal 在函数的外层寻找变量名,如果找到了全局作用域还没找到就会报错