python 参数 *args 和 **kwargs 的区别
* args 表示传入的参数通过元组封装,即args 是一个元组,元素个数可以为0 - n
** kwargs 表示传入的参数以字典的格式封装,即kwargs 是一个字典,元素个数可以是0-n
注意参数命名不影响,即可以不命名为args,kwargs
元组型
def func_args(*args):
print(type(args))
print(args)
func_args()
func_args(1)
#这里的第二个参数虽然是元组,但是还是作为参数的一个元素封装在元组
func_args(1,(2,3))
# *tuple 可以把元组转化为离散的参数传入
func_args(*(1,2,3))
///////////
class 'tuple'>
()
<class 'tuple'>
(1,)
<class 'tuple'>
(1, (2, 3))
<class 'tuple'>
(1, 2, 3)
字典型
def func_kwargs(**kwargs):
print(type(kwargs))
print(kwargs)
solicucu = {"name":"hanjun","age":22}
func_kwargs()
# ** 可以把字典转化成一对对参数传入
func_kwargs(**solicucu)
func_kwargs(n = solicucu["name"],a = solicucu["age"])
{}
<class 'dict'>
{'name': 'hanjun', 'age': 22}
<class 'dict'>
{'n': 'hanjun', 'a': 22}