:
def fn(a,b,c,d):
print(a,b,c,d)
return
tup = (5,6,7,8)
fn(*tup)
输出结果:5 6 7 8
上述将变量tup,加上*作为实参传入函数中后,即依次对应着形参列表进行赋值,实质上是位置传参,如果形参数量与元组内元素数量不符,则会报数量不匹配的错误。
def fn(*args):
print(args)
return
tup = (1,2,3,4,5,6,7)
fn(*tup,1,2,3,4,)
输出结果: (1, 2, 3, 4, 5, 6, 7,1,2,3,4)
def fn(a,b,c,d):
print(a,b,c,d)
return
dic = {
'a':5,
'b':6,
'c':7,
'd':8,
}
fn(**dic)
输出结果:5 6 7 8
上述将变量dic,加上**作为实参传入函数中后,即依次对应着形参列表进行赋值,实质上为关键字传参,如果形参数量与元组内元素数量不符,则会报数量不匹配的错误。
def fn(**kwargs):
print(kwargs)
return
dic = {
'a':5,
'b':6,
'c':7,
'd':8,
}
fn(**dic,e=1,f=2)
输出结果:{‘a’: 5, ‘b’: 6, ‘c’: 7, ‘d’: 8, ‘e’: 1, ‘f’: 2}
注意:实参若挨个传输,必须为关键字传参的形式,且关键字变量名不可重复,如fn(**dic,a=1),这样传参就会报错,因为出现了2个a变量。
以上仅为个人观点,若有疏漏,请各位指点!