采用以下相当标准的代码:
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)并且有多个互斥选项。
有一个优雅的解决方案吗?