値が指定されていないフラグのみが存在する場合に値をデフォルトとするオプションの引数が必要ですが、ユーザーが値を指定した場合はデフォルトの代わりにユーザー指定の値を格納します。このために利用可能なアクションは既にありますか?
例:
python script.py --example
# args.example would equal a default value of 1
python script.py --example 2
# args.example would equal a default value of 2
アクションを作成することはできますが、これを実行する既存の方法があるかどうかを確認したかったのです。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--example', nargs='?', const=1, type=int)
args = parser.parse_args()
print(args)
% test.py
Namespace(example=None)
% test.py --example
Namespace(example=1)
% test.py --example 2
Namespace(example=2)
nargs='?'
は0-or-1引数を意味しますconst=1
は、引数が0の場合にデフォルトを設定しますtype=int
は引数をintに変換しますtest.py
を指定しなくても--example
でexample
を1に設定する場合は、default=1
を含めます。つまり、
parser.add_argument('--example', nargs='?', const=1, type=int, default=1)
それから
% test.py
Namespace(example=1)