*args和**kwargs只是为了方便,并没有强制使用他们
args是当你不确定要往函数里面传递多少个参数的时候你可以使用args,举个简单的例子
def func(*args):
print(args)
func("asd","qwe","zxc")
或者
def func(name,*args):
print(name)
for i in args:
print(i)
func("csdn","asd","qwe","zxc")
输出
csdn
asd
qwe
zxc
csdn是由name传递的值,asd,qwe,zxc则全是由args传递的
**kwargs传递的是关键字参数,就是func(中的x,y,z不可以省略),可以当作一个字典,例如:
def func(**kwargs):
print(kwargs)
print(type(kwargs))#查看kwargs的类型
func(x = 1,y = 2,z = 3)
输出
{'x': 1, 'y': 2, 'z': 3}
可以看出输出的结果为一个字典
以上就是*args和**kwargs的简单区别