默认值参数
可以为某些参数设置默认值,设置了默认值的参数在传递时就是可选的,称为“默认值参数”。
注意解释器默认定义函数的参数时,默认值参数需放在普通参数之后。
【案例】
def f2(a, b, c=10, d=20):
print(a, b, c, d)
f2(10, 20) # 默认值参数可不传参
f2(10, 20, 30) # 被传参的默认值参数值改变,没被传参的则维持原默认值
f2(10, 20, 30, 40)
运行结果:
可变数量参数
可变数量参数也称“可变参数”,有两种类型:
- *param(一个星号),将多个参数收集到一个“元组”对象中。
- **param(两个星号),将多个参数收集到一个“字典”对象中。
【案例】
def f1(a, b, *c):
print(a, b, c)
def f2(a, b, **c):
print(a, b, c)
f1(12, 14, 16, 77)
f2(12, 14, Age=16, Number=77)
运行结果:
强制命名参数
强制命名参数指的是:在函数定义时,如果可变数量参数之后还有其他参数,在传参时必须对其他参数命名,不然会报错。
【案例】
def f3(*a, b, c):
print(a, b, c)
f3(11, 22, 33, 44) # 这样传参会报错
运行结果:
def f3(*a, b, c):
print(a, b, c)
f3(11, 22, 33, 44) # 这样传参会报错
运行结果: