gpt4 book ai didi

Python Argparse "radio"默认标志?

转载 作者:行者123 更新时间:2023-11-28 20:21:41 24 4
gpt4 key购买 nike

例如:

example.py

parser = argparse.ArgumentParser(description="Will take arguments... or none")

parser.add_argument("-a", action="store_true")
parser.add_argument("-b", action="store_true")
parser.add_argument("-c", action="store_true")
parser.add_argument("-d", action="store_true")

args = parser.parse_args()
print args

我希望 example.py 将 a 设置为 True,但前提是:

  • 使用-a标志
  • 没有使用标志

我试着乱搞

解析器.set_defaults(a=True, b=False)

parser.add_argument("-a", action="store_true", default=True)

但即使我决定使用 b 标志,他们也会将 a 设置为 True

最佳答案

是的,即使指定了其他参数,使用默认值也会将 a 设置为 True。这将违反您的第二个要求,以下是一个带有简单条件检查的简单修复。

parser = argparse.ArgumentParser(description="Will take arguments... or none")

parser.add_argument("-a", action="store_true")
parser.add_argument("-b", action="store_true")
parser.add_argument("-c", action="store_true")
parser.add_argument("-d", action="store_true")

args = parser.parse_args()
if not (args.b or args.c or args.d):
args.a=True
print args

关于Python Argparse "radio"默认标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27307551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com