python中*args和**kwargs的理解
打包(pack):*args是把多个位置参数打包成元组,** kwargs是把多个关键字参数打包成字典。
拆分(unpack):* args是把打包了的参数拆成单个的,依次赋值给函数的形参,** kwargs是把字典的键值拆成单个的,依次赋值给函数的形参。
#*args,*作用,有两个:打包参数和拆分参数
#打包参数,将函数的五个参数打包成一个元组输出
def foo(*args):
for i in args:
print(i)
print(type(args))
foo(1,2,3,4,5)
#拆分参数,将列表或是元组进行拆分
def bar(a, b, c, d=10):
print(a, b, c, d)
bar(*[1, 2, 3])
# **kwargs,**的作用,分两种:打包参数(pack)和拆分参数(unpack)
'''
打包(pack):*args是把多个位置参数打包成元组,**kwargs是把多个关键字参数打包成字典。
拆分(unpack):*args是把打包了的参数拆成单个的,依次赋值给函数的形参,**kwargs是把字典的键值拆成单个的,依次赋值给函数的形参。
'''
# **kwargs是把多个关键字参数打包成字典
def bar(**number):
print(number)
bar(a=1, b=2, c=3)
# **kwargs是把字典的键值拆成单个的,依次赋值给函数的形参。
def bar(a, b, c):
print(a,b,c)
bar(**{'a': 1, 'b': 2, 'c': 3})
标签:bar,python,args,参数,kwargs,print,打包
From: https://www.cnblogs.com/lurenj/p/18399315