Именованные аргументы
Именованный аргумент представляет собой пару «имя—значение», передаваемую функции. Имя и значение связываются с аргументом напрямую, так что при передаче аргумента путаница с порядком исключается. Именованные аргументы избавляют от хлопот с порядком аргументов при вызове функции, а также проясняют роль каждого значения в вызове функции.
Перепишем программу pets.py с использованием именованных аргументов при вызове describe_pet():
def describe_pet(animal_type, pet_name):
. ."""Выводит информацию о животном."""
. .print(" I have a " + animal_type + ".")
. .print("My " + animal_type + "'s name is " + pet_name.title() + ".")
. .
describe_pet(animal_type='hamster', pet_name='harry')
Функция describe_pet() не изменилась. Однако на этот раз при вызове функции мы явно сообщаем Python, с каким параметром должен быть связан каждый аргумент. При обработке вызова функции Python знает, что аргумент 'hamster' должен быть сохранен в параметре animal_type, а аргумент 'harry' в параметре pet_name.
Порядок следования именованных аргументов в данном случае не важен, потому что Python знает, где должно храниться каждое значение. Следующие два вызова функции эквивалентны:
describe_pet(animal_type='hamster', pet_name='harry')
describe_pet(pet_name='harry', animal_type='hamster')
примечание
При использовании именованных аргументов будьте внимательны — имена должны точно совпадать с именами параметров из определения функции.