Da in Python 3.8 nur Positionsargumente eingeführt wurden, muss dieser Beitrag aktualisiert werden.
Positionsargumente, Schlüsselwortargumente, erforderliche Argumente und optionale Argumente werden häufig verwechselt. Positionsargumente sind nicht die gleichen wie die erforderlichen Argumente. und Schlüsselwörter Argumente sind nicht die gleichen wie optionale Argumente.
Positionsargumente sind Argumente, die über ihre Position in der Funktionsdefinition aufgerufen werden können.
Schlüsselwortargumente sind Argumente, die mit ihrem Namen aufgerufen werden können.
Erforderliche Argumente sind Argumente, die an die Funktion übergeben werden müssen.
Optionale Argumente sind Argumente, die nicht an die Funktion übergeben werden können. In Python sind optionale Argumente Argumente mit einem Standardwert .
Positionsargument, das optional ist (Python 3.8)
def f(a=2, /):
pass
f()
f(1)
f(a=1)
Erforderliches Positionsargument (Python 3.8)
def f(a, /):
pass
f()
f(1)
f(a=1)
Schlüsselwortargument, das optional ist
def f(*, a=1):
pass
f()
f(1)
f(a=1)
Schlüsselwortargument, das erforderlich ist
def f(*, a)
pass
f() # Error, argument required
f(1) # Error, keyword only arguments
f(a=1) # Allowed, it's a keyword argument
Positions- und Schlüsselwortargument, das optional ist
def f(a=1)
pass
f() # Allowed, argument is optional
f(1) # Allowed, it's a positional argument
f(a=1) # Allowed, it's a keyword argument
# In fact this function is the same as
def f(*, a=1, /):
pass
Erforderliches Positions- und Schlüsselwortargument
def f(a):
pass
f()
f(1)
f(a=1)
def f(*, a, /):
pass
Schlussfolgerung: Ein Argument kann optional sein oder nicht beide gleichzeitig erfordern . Es kann auch Position, Schlüsselwort oder beides gleichzeitig sein .
In Python 3.8 wurden nur Positionsparameter eingeführt .
def f(positional_argument, /, positional_or_keyword_argument, *, keyword_argument):
pass