強制使用命名引數

函式簽名中第一個星號後指定的所有引數都是僅關鍵字。

def f(*a, b):
    pass

f(1, 2, 3)
# TypeError: f() missing 1 required keyword-only argument: 'b'

在 Python 3 中,可以在函式簽名中放置一個星號,以確保其餘引數只能使用關鍵字引數傳遞。

def f(a, b, *, c):
    pass

f(1, 2, 3)
# TypeError: f() takes 2 positional arguments but 3 were given
f(1, 2, c=3)
# No error