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

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

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

Как задать

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

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

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

Когда удобно

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

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

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

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

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

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

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

Задание

Все обучающие игры «Дрон Кодер»

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

📈 Математика · алгебра и графики
📖 Русский язык