我试图编写一个不同的python脚本,具体取决于是否提供了某些可选参数。
我目前有3个案例:
配置和数据文件也通过cli args保护。
以下是我想要改进的内容:
if args.name is not None and\
(args.delay is None or
args.hostid is None or
args.interfaceid is None or
args.key_ is None or
args.type is None
):
当然,这并不包括任何未给出args.name的情况,但列表中的任何其他情况都是。
我找到了关于互斥args的文档,但没有针对这种情况。也许我只是错过了它。
答案 0 :(得分:0)
config_file = args.name
cli_options_present = any(getattr(args, a) is None
for a in 'delay hostid interfaceid key_ type'.split())
if not bool(config_file) ^ cli_options_present:
raise ValueError('Must specify either CLI options or config file, but not both.')
if config_file:
if args.data_file:
pass # fill in
else:
pass # fill in
else:
pass # fill in
^
是xor(独占或)操作。