采用以下相当标准的代码:
from optparse import OptionParser
opts = OptionParser()
opts.add_option('-f', action="store_true")
opts.add_option("-x", dest="x", type="int", default=1)
options, args = opts.parse_args()
假设-x和-f是互斥的:当-x和-f都明确存在时,应该报告错误。
如何检测是否-x明确存在?即使不是,options也要列出默认值。
一种方法是避免设置我宁愿不做的默认值,因为--help可以很好地打印默认值。
另一种方法是检查也有点尴尬sys.argv的实例-x,如果有多个名称-x(即 --long-name)并且有多个互斥选项。
有一个优雅的解决方案吗?