Передать элементы списка в качестве аргументов функции в python - PullRequest
8 голосов
/ 03 мая 2010

Я создаю простой интерпретатор в python, и у меня возникают проблемы с обработкой различного количества аргументов моих функций. Мой текущий метод состоит в том, чтобы получить список команд / аргументов следующим образом.

args = str(raw_input('>> ')).split()
com = args.pop(0)

Затем, чтобы выполнить com, я проверяю, есть ли он в моем словаре отображений команд-> кода, и если это так, я вызываю функцию, которую я там сохранил. Для команды без аргументов это будет выглядеть так:

commands[com]()

Однако, если бы команда имела несколько аргументов, я бы хотел это:

commands[com](args[0],args[1])

Есть ли какая-то хитрость, в которой я мог бы передать некоторые (или все) элементы из моего списка аргументов в функцию, которую я пытаюсь вызвать? Или есть лучший способ реализовать это без использования класса cmd в python?

1 Ответ

13 голосов
/ 03 мая 2010

Попробуйте распаковать ваш список в позиционные аргументы:

commands[com](*args)
...