python 中的可变参数 args和kwargs学习笔记

    xiaoxiao2022-12-09  58

     在学习函数参数定义的时候,经常会遇到这两个参数,在这里归纳总结一下对这两个参数的学习

    *args表示任何多个无名参数,它是一个tuple

    **kwargs表示关键字参数,它是一个dict

    然后通过代码实际去操作:

    首先是args,定义一个测试args的函数

    def myargs(x,*args): print(x) print(args) print(type(args)) myargs(1,2,2)

    输出结果为

    可以看到,除了第一个参数保存到x中以外,其余多余的参数保存到了‘args’中,并且他的类型为元组tuple

    然后测试kwargs,也是一样定义一个测试函数

    def mykwargs(x,**kwargs): print(x) print(kwargs) print(type(kwargs)) mykwargs(1,a=2,c=3,d=6)

    运行结果

    可以看到,除了第一个参数保存到x中以外,其余多余的参数保存到了‘kwargs’中,并且他的类型为字典dict

    最后,测试一下两者的组合情况

    def myargs_kwargs(x,*args,**kwargs): print('x is ', x) print('args is ',args) print('kwargs is ', kwargs) myargs_kwargs(1, 2, 3, 4, a=2, c=3, d=3)

    运行结果:

    可以看到,第一个参数保存到x中,中间的参数保存到args元组中,最后的赋值参数保存到kwargs字典中。

    NOTE:当你参数不匹配的时候,比如,在第三个测试函数中,传入参数与预期不匹配,程序会自动报错,提示删除多余参数

     

    最新回复(0)