参数定义顺序:必选参数(即位置参数)、默认参数、可变参数,命名关键字参数和关键字参数。
关键字参数**kwargs为可以传入多个关键字参数,命名关键字参数为传入指定关键字参数,所以它们两个不会同时出现。
例1:
# 位置参数、默认参数、可变参数组合
def fund(a, b=10, *c):
print(a,b,c)
fund(1, 2, 3, 4)
#不清楚值是怎么传入的,用格式化输出
def fund(a, b=10, *c): # a为必备 b为默认 c为可变
print(f'a = {a}')
print(f'b = {b}')
print(f'c = {c}')
fund(1, 2, 3, 4) # 按照混合参数定义的顺序依次传值
结果:
a = 1
b = 2 # 默认参数按照顺序传参,对应传2,覆盖掉原来的值
c = (3, 4)
例2:
def funa(a, b=20, *c, d = 55): # a必备 b默认 c可变参数 d命名关键字参数
print(f'a = {a}')
print(f'b = {b}')
print(f'c = {c}')
print(f'd = {d}')
funa(1, 2, 3, 4, 7,8)
结果:
a = 1 # 1)按顺序传
b = 2 # 2)覆盖了原来的值
c = (3, 4, 7, 8) # 4)剩下的都给c
d = 55 # 3)命名关键字值更新需要用key = value的形式,这里没有,所以值选择默认
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!