Дрон Кодер — программирование для детей и взрослых в игровой форме. Начать бесплатно

Аргументы по умолчанию: как и когда

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

Как задать

В определении функции параметру присваивают значение через =. Тогда при вызове его можно не указывать — подставится значение по умолчанию.

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

greet('Аня')            # Привет Аня
greet('Аня', 'Здравствуй')  # Здравствуй Аня

Когда удобно

Значения по умолчанию делают функцию гибкой: обязательные параметры задаёте всегда, а необязательные — только когда нужно отклониться от привычного. Это упрощает вызовы в типичных случаях.

Опасная ловушка

Никогда не используйте изменяемое значение (список, словарь) как значение по умолчанию — оно создаётся один раз и «запоминается» между вызовами, что приводит к странным багам. Если нужен список по умолчанию, ставьте None, а внутри создавайте новый список.

Частые вопросы

Можно ли смешивать обязательные и необязательные? Да, но параметры с умолчанием идут после обязательных.

Почему нельзя список по умолчанию? Он общий для всех вызовов; используйте None и создавайте список внутри.

Начать игру бесплатно
Попробуй прямо здесь
Уровень 1

Задание