Насколько надежен `func(* аргумент)`?

В python вы можете расширить последовательность в аргументы дискретных функций с помощью оператора star:

args = [2, 3]
print(pow(*args))  # same as `print(pow(2, 3))`

Есть даже хорошая идиома для транспонирования матрицы (список списков), например так: zip(*matrix), Поскольку в матрице может быть много-много строк, я задаюсь вопросом: насколько надежно разложение по звездам очень длинных последовательностей в аргументы? Во многих языках явные списки аргументов (f(a1, a2, a3, ..., ..., ...)) имеют пределы длины значительно ниже пределов длины массива.

Существуют ли такие ограничения в (популярных реализациях) Python, и обрабатываются ли аргументы со звездообразным расширением таким образом, чтобы предотвратить попадание в такие пределы? (Например, если они непосредственно вставлены в вектор аргумента для функции с сигнатурой типа def function(*args)). Это зависит от реализации или есть гарантии того, что можно решить? Я немного покопался в документации по python, но не смог найти обсуждения этого.

0 ответов

Другие вопросы по тегам