僅關鍵字和關鍵字必需引數

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() missing 1 required keyword-only argument: 'keyword_required'
print(1, 2, 3, keyword_required=4) 
# first positional arg: 1
# another positional arg: 2
# another positional arg: 3
# keyword_required value: 4
# keyword_only value: True