Quel testo che si cita è per la definizione della funzione e non ha nulla a che fare con le chiamate alla funzione. Nella chiamata alla funzione, si utilizza la funzione "argomento denominato". Quel link che fornisci non è di ottima qualità, gli autori sembrano confusi tra due cose diverse.
Il riferimento Python si riferisce agli argomenti posizionali e parola chiave solo rispetto a una chiamata a una funzione (vedere section 5.3.4 Calls
).
Quando si parla della definizione di una funzione in section 7.6 Function definitions
, è un termine completamente diverso "valori di parametro predefiniti".
ho il sospetto le persone che hanno messo insieme quel corso-ware non erano del tutto familiarità con Python :-)
A titolo di esempio, fare riferimento alla seguente definizione e chiede:
def fn (a, b, c = 1):
return a * b + c
print fn (1, 2) # returns 3, positional and default.
print fn (1, 2, 3) # returns 5, positional.
print fn (c = 5, b = 2, a = 2) # returns 9, named.
print fn (b = 2, a = 2) # returns 5, named and default.
print fn (5, c = 2, b = 1) # returns 7, positional and named.
print fn (8, b = 0) # returns 1, positional, named and default.
Il significato di =
cambia, a seconda che si tratti della definizione o della chiamata.
Nella definizione, contrassegna l'argomento facoltativo e imposta un valore predefinito.
Nella chiamata, consente semplicemente di specificare quali argomenti devono essere i valori, in qualsiasi ordine si desideri.
"perché possiamo anche chiamarlo con la sintassi della parola chiave true argument?" Perché è così che funziona la lingua. –