Параметризованные функции ‒ больше деталей
Иногда бывает, что значения одного параметра используются чаще других. Такие аргументы могут принимать во внимание их значения по умолчанию (предопределенные), если соответствующие им аргументы были опущены.
Говорят, самая популярная английская фамилия - Смит. Попробуем это учесть.
Значение параметра по умолчанию устанавливается с помощью четкого и наглядного синтаксиса:
def introduction(first_name, last_name="Smith"):
print("Hello, my name is", first_name, last_name)
Вам нужно только расширить имя параметра знаком =
, за которым следует значение по умолчанию.
Давайте вызовем функцию как обычно:
introduction("James", "Doe")
Вы можете угадать, что выведет программа? Запустите ее и проверьте, правы ли Вы.
И? Все выглядит так же, но когда вы вызываете функцию образом, который на первый взгляд выглядит немного подозрительно, например:
introduction("Henry")
или так:
introduction(first_name="William")
ошибки не будет, и оба вызова будут успешными, а в консоль будет выведено следующее:
Hello, my name is Henry Smith
Hello, my name is William Smith
вывод
Протестируйте это.
Вы можете пойти дальше, если это будет полезно. Оба параметра теперь имеют значения по умолчанию, посмотрите на код ниже:
def introduction(first_name="John", last_name="Smith"):
print("Hello, my name is", first_name, last_name)
Это делает следующий вызов полностью верным:
introduction()
А это - ожидаемый вывод:
Hello, my name is John Smith
вывод
Если вы используете один именованный аргумент, другой примет значение по умолчанию:
introduction(last_name="Hopkins")
Вывод:
Hello, my name is John Hopkins
вывод
Протестируйте.
Поздравляем - вы только что узнали несколько основных приемов взаимодействия с функциями.