*args和**kwargs的区别

*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}
<class 'dict'>

可以看出输出的结果为一个字典

以上就是*args和**kwargs的简单区别

猜你喜欢

转载自blog.csdn.net/qq_41114516/article/details/83045887