函数的进阶

你的函数,为了拓展,对于传入的实参数量不固定,万能参数,就是动态参数。
1.函数的动态参数 *args **kwargs,动态参数,也叫不定长传参,就是你需要传给函数的参数很多,不定个数,

接收除去键值对以外的所有参数,kwargs接收的只是键值对的参数,并保存在字典中。
def sum1(*args): 在函数的定义时,在*位置参数,聚合。
*args 将所有的实参的位置参数聚合到一个元组,并将这个元组赋值给args。
print()
sum1(1,2,3,4,name='alex',age=100)

*的魔性用法,在*位置参数,**位置参数聚合。
在函数的调用(执行)时,在*位置参数,**位置参数打散。


形参的顺序:位置参数,*args,默认参数 **kwargs

2.名称空间,临时名称空间,作用域,取值顺序,加载顺序等。
名称空间:
全局名称空间
局部名称空间(临时)
内置名称空间

作用域:
全局作用域:全局名称空间 内置名称空间
局部作用域: 局部名称空间(临时)

取值顺序:就近原则
局部名称空间---》全局名称空间---》内置名称空间

加载顺序:内置名称空间 全局名称空间 局部名称空间


3.global,nonlocal
global将函数里面的局部变量转化为全局变量


nonlocal 1.不能修改全局变量
2.在局部作用域中,对父级作用域(或者更外层作用域非全局作用域)的变量进行引用和修改,并且引用的哪层,从那层及以下此变量全部发生改  变。
这个层是指的是接下来进行的操作。



4.函数的嵌套。
原文地址:https://www.cnblogs.com/13507215809qwer-/p/9512604.html