Передача аргументов по имени
Python предлагает еще одну конвенцию передачи аргументов, где значение аргумента определяется его именем, а не его позицией - это называется передачей аргументов по имени.
Взгляните на фрагмент:
def introduction(first_name, last_name):
print("Hello, my name is", first_name, last_name)
introduction(first_name = "James", last_name = "Bond")
introduction(last_name = "Skywalker", first_name = "Luke")
Концепция проста - значениям, передаваемым в параметры, предшествуют имена целевых параметров, за которыми следует знак =
.
Положение здесь не имеет значения - значение каждого аргумента знает свое назначение по используемому имени.
Вы должны быть в состоянии предсказать результат. Запустите код, чтобы проверить, правы ли Вы.
Конечно же, Вы не должны использовать несуществующее имя параметра.
Следующий код вызовет ошибку выполнения:
def introduction(first_name, last_name):
print("Hello, my name is", first_name, last_name)
introduction(surname="Skywalker", first_name="Luke")
Вот что вам скажет Python:
TypeError: introduction() got an unexpected keyword argument 'surname'
вывод
Попробуйте сами.