Позиционные аргументы связываются с параметрами по порядку, именованные — по имени. В Python порядок категорий параметров и расположение значений по умолчанию ограничены синтаксисом.
Что такое позиционные и именованные аргументы и важен ли их порядок при объявлении функции?
Позиционные аргументы связываются с параметрами по порядку, именованные — по имени. В Python порядок категорий параметров и расположение значений по умолчанию ограничены синтаксисом.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Позиционные аргументы связываются с параметрами по порядку, именованные — по имени. В Python порядок категорий параметров и расположение значений по умолчанию ограничены синтаксисом.
Пример:
def send(user, retries=3, *, urgent=False):
return user, retries, urgent
send("Anna", urgent=True)
urgent здесь keyword-only. Обычный обязательный позиционный параметр нельзя поставить после параметра с default. Символ / задаёт positional-only, * — границу keyword-only; *args и **kwargs собирают дополнительные аргументы. При обычном вызове позиционные аргументы передают до именованных. Важно различать порядок объявления параметров и порядок передачи значений.