Python для новичковФункцииПараметры по умолчанию и несколько возвращаемых значений

Параметры по умолчанию и несколько возвращаемых значений

Уроки курсаПараметры по умолчанию и несколько возвращаемых значений

В прошлом уроке функция принимала только обязательные параметры: если аргумент не передан, Python выдавал ошибку. Теперь разберём, как сделать параметр необязательным — задать ему значение прямо в сигнатуре, которое будет работать «по умолчанию», если аргумент при вызове не указан.

Параметры по умолчанию: синтаксис и логика работы

Параметр по умолчанию — это обычный параметр функции, которому сразу при объявлении присваивается значение. Синтаксис простой: после имени параметра ставится = и нужное значение прямо в строке def.

def greet(name, greeting='Привет'):
    print(f'{greeting}, {name}!')

Здесь name — обязательный параметр, а greeting — необязательный: у него уже есть значение 'Привет'.

Когда Python видит вызов функции, он ведёт себя по простому правилу: если аргумент для параметра передан — использует его, если нет — берёт значение по умолчанию.

greet('Алиса')                    # Привет, Алиса!
greet('Алиса', 'Добрый день')    # Добрый день, Алиса!

Первый вызов: greeting не передан, поэтому подставляется 'Привет'. Второй вызов: передан явный аргумент 'Добрый день', значение по умолчанию игнорируется.

Важно понимать: значение по умолчанию задаётся один раз при определении функции и остаётся неизменным между вызовами. Каждый раз, когда аргумент не передан, Python просто подставляет то самое значение, которое вы написали в сигнатуре.

Параметры по умолчанию особенно удобны, когда функция имеет «разумное» поведение в большинстве ситуаций, но иногда его нужно переопределить. Вместо того чтобы писать несколько функций или каждый раз передавать одно и то же значение, достаточно один раз задать его в сигнатуре.