如何在python中打印计算的条件而不是其布尔值?
假设'--run'作为参数提供,如何在变量中声明'opt.run'条件,而不是使用'or'系列操作声明其布尔值如何在python中打印计算的条件而不是其布尔值?,python,operators,conditional,argparse,Python,Operators,Conditional,Argparse,假设'--run'作为参数提供,如何在变量中声明'opt.run'条件,而不是使用'or'系列操作声明其布尔值 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
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
打印“步骤”会导致“True”,但我真正需要的是计算“True”的条件,即“opt.run”。您尝试执行的操作如下:
step = "pre" if opt.pre else "run" if opt.run else "post" if opt.post else "default"
print(step)
如果您的逻辑是用户必须从三个选项中选择一个,那么您可以在以下情况下删除最后一个选项:
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"
谢谢Padraic,我希望能有一艘客轮,但最终还是同意了你的建议。一个很好的提醒,“优雅”并不总是意味着“更好”。