func(*args, **kwargs)
args 和 *kwargs 主要用于函数定义。 你可以将不定数量的参数传递给一个函数。
这里的不定的意思是:预先并不知道, 函数使用者会传递多少个参数给你, 所以在这个场景下使用这两个关键字。 args 是用来发一个非键值对的可变数量的参数列表给一个函数。*kwargs允许你将一个不定长度的键值对,作为参数传递给一个函数。如果需要在一个函数中处理带名字的参数时,此时就应该使用kwargs了。
一、含义
1、args和*kwargs主要用于定义函数的可变参数
2、*args:发送一个非键值对的可变数量的参数列表给函数
3、**kwargs:发送一个键值对的可变数量的参数列表给函数
4、如果想要在函数内使用带有名称的变量(像字典那样),那么使用**kwargs。
定义可变参数的目的是为了简化调用。
和*在此处的作用:打包参数。
二、使用时注意事项
1、args和kwargs不是固定的,只有前面的和是固定不可变的,后面的名称可以随意改,例如vals代表非键值对的可变数量的参数,parms代表可变数量的键值对参数。使用args和kwargs,是一种约定成俗的习惯,你也可以不使用这个名称。
2、当要同时使用args和kwargs时,args必须写在kwargs之前。
3、如果现在该一个函数中同时使用这三种参数,此时这三种参数的顺序应该是:arg,args,*kwargs
*args 用来将参数打包成tuple给函数体调用。输出结果以元组的形式展示。
**kwargs 打包关键字参数成dict给函数体调用,输出结果以列表形式展示。