Я пишу программу командной строки python, которая имеет некоторые взаимозависимые параметры, и я бы хотел, чтобы пользователь мог вводить эти параметры в любом порядке.
В настоящее время я использую библиотеку getopts для анализа параметров командной строки, к сожалению, которые анализируют их по порядку.Я собрал систему логических флагов, чтобы оставить обработку некоторых аргументов командной строки до тех пор, пока не будет обработан тот, от которого они зависят, однако у меня была идея использовать очередь вызовов функций Priority Queue, которая выполнялась бы после выполнения всей командыПараметры строки анализируются.
Я знаю, что Python может хранить функции под именами переменных, но кажется, что она вызывает функцию одновременно.
Например:
help = obj.PrintHelp()
heapq.heappush(commandQ, (0, help))
Распечатает диалоговое окно справки немедленно.Как бы я реализовал свой код так, чтобы он не вызывал PrintHelp () сразу после присвоения ему имени.
РЕДАКТИРОВАТЬ: О, я только что понял, что я помещаю в очередь под названием справки, это моя ошибка.
Спасибо за подсказку по удалению () после PrintHelp.
Что если я хочу теперь вызвать функцию, которая требует больше, чем аргумент self?
myFun = obj.parseFile(path)
heapq.heappush(commandQ, (1, myFun))
Могу ли я просто увеличить кортеж и принять аргумент командной строки?