动态参数

形参

位置参数*args: 接收所有的位置参数,定义的时候是聚合,获取一个元组,使用的时候是打散

def eat(*args):      聚合打包
    print(args)      输出元组
eat('方便面','包子')

位置参数>动态位置参数

def eat(*args,a,b)    错误
def eat(a,b,*args)    
eat('方便面','包子')

 关键字参数**kwargs:接收所有关键字参数,获取到一个字典,定义时聚合,使用时*kwargs打散字典的键

默认值参数>动态默认值参数

def func(b=1.**kwargs)    聚合为字典
    print(*kwargs)         输出字典的键
    print(b)
eat(a=1,b=2,c=3)

万能函数

def func(*args,**kwargs):   等于号就是默认值/关键字参数,其他为位置参数
    print(*args,*kwargs)    (1,2,3,a,b,c)
func(1,2,3,a=1,b=2,c=3)

print(func__doc__)  查看函数的注释

名称空间

找值:从里往外    局部空间>名称空间>内置空间

加载:从外往里   内置空间>名称空间>内置空间

a=10
def func():
    a=20
    print(a)
    print(globals())  查看局部作用域内容 结果为 a=20
    print(locals())   查看全局作用域内容  a=10
func()

global+元素   从里往外修改全局元素

nonlocal+元素      修改离的最近上一层的变量值,上一层没有继续往外找,直到最外层局部

原文地址:https://www.cnblogs.com/weize111/p/10260780.html