4.3 命名关键字形参和双星号字典形参
命名关键字形参
作用
强制,所有的参数都必须用关键字传参。
语法
def 函数名(*, 命名关键字形参1, 命名关键字形参2, ...):
...
# 或者
def 函数名(*args, 命名关键字形参1, 命名关键字形参2, ...):
...
示例
# 命名关键字形参示例
# def myfunc(a, b, *, c, d):
def myfunc(a, b, *args, c, d):
print('a:', a, 'b:', b, 'c:', c, 'd:', d)
myfunc(1, 2, 3, 4) # 强制报错
myfunc(100, 200, d=400, c=300)
myfunc(b=222, a=111, d=444, c=333)
双星号字典形参
作用
收集多余的关键字传参。
语法
说明
- 字典形参名 最多有一个。
- 字典形参名 一般命名为 kwargs。
函数的形参定义方法说明
- 位置形参,星号元组形参,命名关键字参数,双星号字典形参,缺省参数可以混合使用。
- 函数的形参定义自左至右的顺序为:位置形参,星号元组形参,命名关键字参数,双星号字典形参。
示例
# 双星号字典形参示例
def myfunc(a, b, *args, c, d, **kwargs):
print('a:', a, 'b:', b, 'c:', c, 'd:', d)
print('kwargs:', kwargs)
myfunc(100, 200, d=400, c=300, e=500, f=600)