* 和** 可用于解包,具体来说,就是将集合拆散,解包
def f(stname,degree,inc=1):
print(f"{stname}:{degree}=>{degree+inc}")
x=("张三",22,8)
f(x)
直接报错,
TypeError: f() missing 1 required positional argument: 'degree'
需要的是一系列位置参数,而不是所有参数集合成一个列表,需要*解包
def f(stname,degree,inc=1):
print(f"{stname}:{degree}=>{degree+inc}")
x=("张三",22,8)
f(*x)
同理,基于关键字参数解包
def f(stname,degree,inc=1):
print(f"{stname}:{degree}=>{degree+inc}")
x={'stname':"张三",'degree':22,'inc':8}
f(**x)