0

我想以任何顺序给我的脚本命名控制台参数,但我的代码不能正常工作。

import argparse, sys

parser = argparse.ArgumentParser()
parser.add_argument('n', help="some integer which is needed", type=int, default=100)
parser.add_argument('b', help="a yes or no question (default yes)", type=str, default=True)
args=parser.parse_args()
print(args)

我希望能够完成以下所有以自己独特的恼人方式失败的事情:

  • python myscript.py n=85
  • python myscript.py b=否
  • python myscript.py b=否 n=47

所有这些都会导致无效的 int 错误,这让我陷入困境。为什么我不能按照我喜欢的顺序告诉脚本 n 和 b 是什么?为什么我不能用名称给出参数的值?为什么我的默认值完全被忽略了?还有 python myscript.py 7458 b=yes

它打印 Namespace(n=7458, b='b=yes') 也好不到哪里去

那么为什么我不能说 n=7458 之类的东西,为什么 b= 不被理解为不属于 b 值的一部分呢?

4

0 回答 0