Python仅关键字和关键字必需的参数

示例

Python 3允许您定义只能通过关键字分配的函数参数,即使没有默认值也是如此。这是通过使用star *来消耗其他位置参数而无需设置关键字参数来完成的。*之后的所有参数均为仅关键字(即非位置)参数。请注意,如果没有为仅关键字的参数提供默认值,则在调用函数时仍需要使用它们。

def print_args(arg1, *args, keyword_required, keyword_only=True):
    print("first positional arg: {}".format(arg1))
    for arg in args:
        print("another positional arg: {}".format(arg))
    print("keyword_required value: {}".format(keyword_required))
    print("keyword_only value: {}".format(keyword_only))
    
print(1, 2, 3, 4) # TypeError:print_args()缺少1必需的仅关键字参数:'keyword_required'
print(1, 2, 3, keyword_required=4) 
# 第一个位置参数:1
# 另一个位置参数:2
# 另一个位置参数:3
# keyword_required值:4
# keyword_only值:True