Текст, который вы цитируете, относится к определению функции и не имеет ничего общего с вызовами функции.В вызове этой функции вы используете функцию "именованного аргумента".Ссылка, которую вы предоставляете, не очень хорошего качества, авторы кажутся запутанными между двумя разными вещами.
Ссылка на Python относится к позиционным аргументам и ключевым словам только в отношении вызова функции (см. section 5.3.4 Calls
).
Когда они говорят об определении функции в section 7.6 Function definitions
, это совершенно другой термин «значения параметров по умолчанию».
Я подозреваю, что люди, которые собрали эту программу курса, не были полностью знакомыми с Python: -)
В качестве примера, обратитесь к следующему определению извонки:
def fn (a, b, c = 1): # a/b required, c optional.
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.
Значение =
изменяется в зависимости от того, находится ли оно в определении или в вызове.
В определении он помечает необязательный аргумент и устанавливаетзначение по умолчанию.
В вызове он просто позволяет вам указать, какие аргументы должны быть какими значениями, в любом порядке.