Как построить динамический вызов функции с переменными аргументами в Python - PullRequest
2 голосов
/ 14 ноября 2011

Я пытаюсь обернуть вызов операции со списком переменных аргументов в обобщенную функцию с фиксированными аргументами, такими как:

def vectorizeIt(args, op)

op - это функция с переменным числом аргументов, а args - список с аргументами, которые я хотел бы передать ей. Например, если len(args) == 3, то я бы хотел назвать op следующим образом: op(args[0],args[1],args[2]). Насколько я могу судить, op должен иметь явно переданные аргументы; Я не могу изменить список аргументов, чтобы он был просто одним списком или словарем. Любые предложения о том, как это сделать, приветствуются.

1 Ответ

4 голосов
/ 14 ноября 2011

Используйте оператор "splat" *, чтобы применить произвольное число аргументов к op:

def vectorizeIt(args, op):
    op(*args)

Ссылка:

...