В Python функция может принимать определённое количество аргументов, потому что при вызове функция ожидает получить набор значений, соответствующий числу параметров. 4
Однако если заранее неизвестно, сколько конкретно аргументов будет передано в функцию, в Python используются аргументы переменной длины. 1 Для этого перед именем параметра ставится звёздочка «*», которая сообщает интерпретатору о том, что количество позиционных аргументов будет переменным. 1
Также функции в Python могут принимать переменное количество именованных аргументов, в этом случае перед названием параметра ставится «**». 1 В этом случае аргументы заключаются не в кортеж, а в словарь. 1
Способность функции принимать переменное количество аргументов делает её более универсальной и гибкой. 2