Я создаю простой интерпретатор в Python, и я испытываю затруднения при обработке отличающихся чисел аргументов моим функциям. Мой существующий метод состоит в том, чтобы получить список команд/аргументов следующим образом.
args = str(raw_input('>> ')).split()
com = args.pop(0)
Затем для выполнения com я проверяю, чтобы видеть, находится ли это в моем словаре команды-> отображения кода и если это, я вызываю функция, которую я сохранил там. Для команды без аргументов это было бы похоже:
commands[com]()
Однако, если бы команда имела несколько аргументов, то я хотел бы это:
commands[com](args[0],args[1])
Есть ли некоторый прием, куда я мог передать некоторых (или все) элементов моего списка аргумента к функции, которую я пытаюсь вызвать? Или есть ли лучший способ реализовать это, не имея необходимость использовать cmd класс Python?
Попробуйте распаковать свой список в позиционные аргументы:
commands[com](*args)