При использовании *args в определении функции в Python, это позволяет функции принимать произвольное количество позиционных аргументов.
Что конкретно происходит:
* (в данном случае, args).  Можно использовать любое допустимое имя переменной, но args является общепринятым соглашением.
    args, чтобы получить доступ к каждому переданному аргументу.
    Пример:
def my_function(*args):
  print(f"Тип args: {type(args)}")
  print("Аргументы:")
  for arg in args:
    print(arg)
my_function(1, "hello", 3.14, True)
  Вывод:
Тип args: <class 'tuple'>
Аргументы:
1
hello
3.14
True
  Важно помнить:
*args должен быть указан после всех обязательных позиционных аргументов и перед любыми аргументами по умолчанию или аргументами **kwargs.
    *args.  Например: def my_function(a, b, *args):
    В итоге, *args предоставляет гибкий способ создания функций, которые могут работать с разным количеством входных данных без необходимости заранее знать их число.