Олег Марков
Позиционные и именованные аргументы в Python
Введение
Аргументы функций позволяют передавать данные внутрь функций для обработки. В Python существуют позиционные и именованные аргументы, что даёт гибкость вызова функций и улучшает читаемость кода.
В этой статье мы разберемся, как правильно использовать позиционные и именованные аргументы в Python, какие правила их применения и как избежать типичных ошибок.
Если вы хотите детальнее изучить работу с аргументами функций в Python — приходите на наш курс Основы Python. На курсе 209 уроков и 34 упражнения, AI-тренажеры для практики с кодом и задачами 24/7, решение задач с живым ревью наставника, еженедельные встречи с менторами.
Позиционные аргументы
Позиционные аргументы передаются функции в порядке их определения:
def greet(name, age):
print(f"Hello, {name}, you are {age} years old")
greet("Alice", 30) # Hello, Alice, you are 30 years oldПорядок имеет значение: greet(30, "Alice") вызовет некорректный результат.
Именованные аргументы
Именованные аргументы указываются явно по имени при вызове:
greet(age=30, name="Alice") # Hello, Alice, you are 30 years oldИменованные аргументы можно комбинировать с позиционными:
greet("Alice", age=30) # Hello, Alice, you are 30 years oldАргументы по умолчанию
Часто удобно задавать значения по умолчанию:
def greet(name, age=25):
print(f"Hello, {name}, you are {age} years old")
greet("Bob") # Hello, Bob, you are 25 years old
greet("Bob", 40) # Hello, Bob, you are 40 years oldИспользование аргументов в выражениях
def add(a, b=5):
return a + b
print(add(3)) # 8, использовано значение по умолчанию
print(add(3, 7)) # 10, указано новое значениеЧастые ошибки
- Перепутан порядок позиционных аргументов.
- Использование позиционных аргументов после именованных →
SyntaxError. - Неявное смешивание именованных и позиционных аргументов без учета порядка.
Часто задаваемые вопросы
Можно ли использовать только именованные аргументы? Да, при вызове функции можно передавать все аргументы по имени.
Можно ли изменить значение аргумента по умолчанию во время вызова? Да, достаточно указать новое значение при вызове.
Что происходит, если аргумент с дефолтным значением не указан? Используется значение по умолчанию.
Заключение
Понимание позиции и имен аргументов позволяет писать гибкие и читаемые функции. Использование аргументов по умолчанию и именованных аргументов повышает удобство вызова и снижает вероятность ошибок.
Для системного изучения аргументов функций в Python рекомендую пройти курс Основы Python. В первых 3 модулях уже доступно бесплатное содержание — начните погружаться в мир Python прямо сегодня.
Постройте личный план изучения Python до уровня Middle — бесплатно!
Python — часть карты развития Backend
100+ шагов развития
30 бесплатных лекций
300 бонусных рублей на счет
Все гайды по Python
Лучшие курсы по теме

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