Параметры по умолчанию и несколько возвращаемых значений
Уроки курсаПараметры по умолчанию и несколько возвращаемых значений
В прошлом уроке функция принимала только обязательные параметры: если аргумент не передан, Python выдавал ошибку. Теперь разберём, как сделать параметр необязательным — задать ему значение прямо в сигнатуре, которое будет работать «по умолчанию», если аргумент при вызове не указан.
Параметры по умолчанию: синтаксис и логика работы
Параметр по умолчанию — это обычный параметр функции, которому сразу при объявлении присваивается значение. Синтаксис простой: после имени параметра ставится = и нужное значение прямо в строке def.
def greet(name, greeting='Привет'):
print(f'{greeting}, {name}!')
Здесь name — обязательный параметр, а greeting — необязательный: у него уже есть значение 'Привет'.
Когда Python видит вызов функции, он ведёт себя по простому правилу: если аргумент для параметра передан — использует его, если нет — берёт значение по умолчанию.
greet('Алиса') # Привет, Алиса!
greet('Алиса', 'Добрый день') # Добрый день, Алиса!
Первый вызов: greeting не передан, поэтому подставляется 'Привет'. Второй вызов: передан явный аргумент 'Добрый день', значение по умолчанию игнорируется.
Важно понимать: значение по умолчанию задаётся один раз при определении функции и остаётся неизменным между вызовами. Каждый раз, когда аргумент не передан, Python просто подставляет то самое значение, которое вы написали в сигнатуре.
Параметры по умолчанию особенно удобны, когда функция имеет «разумное» поведение в большинстве ситуаций, но иногда его нужно переопределить. Вместо того чтобы писать несколько функций или каждый раз передавать одно и то же значение, достаточно один раз задать его в сигнатуре.
