Какие типы аргументов есть в Python?
1. Позиционные аргументы (Positional arguments)
Передаются функции по порядку, и их значение определяется порядком вызова.
def func(a, b):
return a + b
func(1, 2) # a=1, b=22. Именованные аргументы (Keyword arguments)
Передаются явно с указанием имени параметра. Порядок не важен.
func(b=2, a=1) # a=1, b=23. Аргументы по умолчанию (Default arguments)
Параметры с заданным значением по умолчанию, если аргумент не передан.
def func(a, b=5):
return a + b
func(3) # b=5 по умолчанию, результат 8
func(3, 7) # b=7, результат 104. *Переменное число позиционных аргументов (args)
Позволяет передать произвольное число позиционных аргументов, которые внутри функции собираются в кортеж.
5. **Переменное число именованных аргументов (kwargs)
Позволяет передать произвольное число именованных аргументов, которые внутри функции собираются в словарь.
6. Позиционные только аргументы (Python 3.8+)
Аргументы, которые можно передать только позиционно — указаны через / в объявлении.
7. Именованные только аргументы (Python 3.8+)
Аргументы, которые можно передать только по имени — указаны через * в объявлении.
Итог
Позиционные: передаются по порядку.
Именованные: передаются по имени.
По умолчанию: имеют значение по умолчанию.
*args: кортеж произвольных позиционных аргументов.
**kwargs: словарь произвольных именованных аргументов.
/ и * для позиционных и именованных только аргументов (нововведение).
Last updated
Was this helpful?