Олег Марков
Аргументы по умолчанию в Python
Введение
Аргументы по умолчанию позволяют функции работать корректно, даже если некоторые параметры не были переданы при вызове. Это повышает гибкость функций и снижает количество повторяющегося кода.
В этой статье мы разберемся, как использовать аргументы по умолчанию в Python, какие есть ограничения и как комбинировать их с позиционными и именованными аргументами.
Если вы хотите детальнее изучить работу с функциями и аргументами в Python — приходите на наш курс Основы Python. На курсе 209 уроков и 34 упражнения, AI-тренажеры для практики с кодом и задачами 24/7, решение задач с живым ревью наставника, еженедельные встречи с менторами.
Задание значения по умолчанию
Аргументы по умолчанию задаются при определении функции через =:
def greet(name, age=25):
print(f"Hello, {name}, you are {age} years old")
greet("Alice") # Hello, Alice, you are 25 years old
greet("Bob", 30) # Hello, Bob, you are 30 years oldЕсли аргумент передан при вызове — используется переданное значение. Если нет — применяется значение по умолчанию.
Комбинирование с позиционными и именованными аргументами
Аргументы по умолчанию удобно сочетать с другими типами аргументов:
def introduce(name, age=25, country="Russia"):
print(f"{name}, {age} years old, from {country}")
introduce("Anna") # Anna, 25 years old, from Russia
introduce("Leo", country="USA") # Leo, 25 years old, from USAПравило: все аргументы с дефолтным значением должны идти после обязательных аргументов.
Использование в вычислениях
Возвращаемые значения с аргументами по умолчанию можно использовать в выражениях:
def power(base, exponent=2):
return base ** exponent
print(power(5)) # 25
print(power(5, 3)) # 125Частые ошибки
- Обязательный аргумент после аргумента по умолчанию →
SyntaxError. - Использование изменяемых объектов (списки, словари) как аргументы по умолчанию без учета побочных эффектов.
Часто задаваемые вопросы
Можно ли использовать аргументы по умолчанию с *args и kwargs? Да, это часто используется для создания универсальных функций.
Что произойдет, если значение по умолчанию — изменяемый объект? Он будет общим для всех вызовов функции, что может вызвать неожиданные эффекты. Рекомендуется использовать
Noneи создавать объект внутри функции:
def append_item(item, lst=None):
if lst is None:
lst = []
lst.append(item)
return lst- Можно ли менять значение по умолчанию после определения функции?
Нет, значение задается при определении. Для динамических значений используйте
Noneи логику внутри функции.
Заключение
Аргументы по умолчанию делают функции более гибкими и удобными. Они позволяют уменьшить количество повторяющегося кода и создавать функции с разными сценариями вызова.
Для системного изучения функций и аргументов в Python рекомендую пройти курс Основы Python. В первых 3 модулях уже доступно бесплатное содержание — начните погружаться в мир Python прямо сегодня.
Постройте личный план изучения Python до уровня Middle — бесплатно!
Python — часть карты развития Backend
100+ шагов развития
30 бесплатных лекций
300 бонусных рублей на счет
Все гайды по Python
Лучшие курсы по теме

Основы Python
Антон Ларичев
Nest.js с нуля
Антон Ларичев