我试图在Python2.4和2.6上使用带有argparse的min()。我有以下代码在2.6中工作正常但在2.4中给我一个语法错误。我已经浏览了2.4的文档,试图弄清楚这一点以及使用2.4的一些例子,但一直无法找到。从我所知道的,Argparse在2.4中运行良好。
argparse中的行:
parser.add_argument("--no-alert-on-critical", action='store_true', help='disable critical alerts and dashboard status\'s for this check (default: yes)')
设置变量:
critical_status_exit_code = min(1 if args.no_alert_on_critical else 2,
0 if args.no_alert_on_warning and args.no_alert_on_critical else 2)
由于
答案 0 :(得分:2)
三元运算符仅在Python 2.5中添加,因此在此之前的任何版本都将抛出SyntaxError
以响应一个。您必须使用if
和else
语句对变量进行长期定义:
if args.no_alert_on_critical:
var = 1
else:
var = 0
对所有值执行此操作,然后将存储它们的变量传递给min()
。
答案 1 :(得分:1)
或者只是跳过使用min()......
def calc_code():
# pick a better function name
if args.no_alert_on_critical:
if args.no_alert_on_warning:
return 0
return 1
return 2
critical_status_exit_code = calc_code()
或者...
critical_status_exit_code = 2
if args.no_alert_on_critical:
critical_status_exit_code -= 1
if args.no_alert_on_warning:
critical_status_exit_code -= 1