Вот мой пример кода:
def function1():
parser = argparse.ArgumentParser(description='Test Cascading Utility')
parser.add_argument('--number', type=str, help='Enter number')
args = parser.parse_args()
x = str(args.number)
squares = float(x)**2
def function2():
parser = argparse.ArgumentParser(description='Test Cascading Utility')
parser.add_argument('--number1', type=str, help='Enter number')
parser.add_argument('--number2', type=str, help='Enter number')
args = parser.parse_args()
x = str(args.number1)
y = str(args.number2)
div = float(x)/float(y)
def main():
choice = sys.argv[1]
if choice == 'Y':
function1()
elif choice == 'N':
function2()
else:
print("Come on, choose a Y or N option.")
if __name__ == '__main__':
main()
Я пытаюсь создать каскадный инструмент cli, в котором, основываясь на одной опции, которую я ввожу, он запускает определенный метод. Этот метод в свою очередь будет иметь свой собственный набор аргументов.
Этот конкретный код выдает ошибку: error: unrecognized arguments: Y
Это заставляет меня думать, что системный аргумент 'choice' переопределяется синтаксическим анализатором аргументов, поэтому как я могу реализовать этот каскадный эффект, когда на основе выбора я запускаю метод.
Это мой первый раз, когда я углубляюсь в argparse
, и поэтому, пожалуйста, потерпите меня, если вопрос глупый. Но это то, что я действительно хотел бы реализовать.