Какие типы аргументов есть в Python?

1. Позиционные аргументы (Positional arguments)

Передаются функции по порядку, и их значение определяется порядком вызова.

def func(a, b):
    return a + b

func(1, 2)  # a=1, b=2

2. Именованные аргументы (Keyword arguments)

Передаются явно с указанием имени параметра. Порядок не важен.

func(b=2, a=1)  # a=1, b=2

3. Аргументы по умолчанию (Default arguments)

Параметры с заданным значением по умолчанию, если аргумент не передан.

def func(a, b=5):
    return a + b

func(3)    # b=5 по умолчанию, результат 8
func(3, 7) # b=7, результат 10

4. *Переменное число позиционных аргументов (args)

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


5. **Переменное число именованных аргументов (kwargs)

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


6. Позиционные только аргументы (Python 3.8+)

Аргументы, которые можно передать только позиционно — указаны через / в объявлении.


7. Именованные только аргументы (Python 3.8+)

Аргументы, которые можно передать только по имени — указаны через * в объявлении.


Итог

  • Позиционные: передаются по порядку.

  • Именованные: передаются по имени.

  • По умолчанию: имеют значение по умолчанию.

  • *args: кортеж произвольных позиционных аргументов.

  • **kwargs: словарь произвольных именованных аргументов.

  • / и * для позиционных и именованных только аргументов (нововведение).

Last updated

Was this helpful?