假设' - run'作为参数提供,我如何在变量中声明'opt.run'条件,而不是使用'或'系列操作声明它的布尔值?
parser = argparse.ArgumentParser()
parser.add_argument("--pre",dest="pre",action="store_true")
parser.add_argument("--run",dest="run",action="store_true")
parser.add_argument("--post",dest="post",action="store_true")
opt = parser.parse_args()
step = opt.pre or opt.run or opt.post
打印'step'会产生'True',但我真正需要的是评估'True'的条件 - 即'opt.run'。
答案 0 :(得分:2)
您要做的是:
step = "pre" if opt.pre else "run" if opt.run else "post" if opt.post else "default"
print(step)
如果您有逻辑,用户必须选择三个中的一个,您可以删除最后一个if:
step = "pre" if opt.pre else "run" if opt.run else "post"
但我建议将其分解为if / elif:
step = "default"
if opt.run:
step = "run"
elif opt.pre:
step = "pre"
elif opt.post:
step = "post"