次のかなり標準的なコードを取ります。
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
、デフォルト値をリストしてください。
1つの方法は、デフォルト値を適切に出力するため、デフォルト値を設定しないようにすること--help
です。
もう1つの方法は、の名前が複数あり(つまり、-long-name)、相互に排他的なオプションのペアが複数ある場合に、少し厄介なsys.argv
インスタンスをチェックすることです。-x
-x
これに対するエレガントな解決策はありますか?