2017-08-15 13 views
2

パラメータ-cを追加しました。別のパラメータ-caを追加します。 -caのデフォルト値を-cとしてどのように設定できますか?私がしたいのは、-caが指定されていない場合に、-cに-caを割り当てることです。Python Argparse - パラメータのデフォルト値を別のパラメータに設定する

parser.add_argument("-c", type=str) 

parser.add_argument("-ca", type=str, default=XXX) 

ありがとうございます。

+1

'が指定されていない-ca'場合、' -c'は、-ca' 'に割り当てる必要がありますが、 '-c'と' -ca'が指定されていなければ? – Haranadh

+0

この場合、-cは必須とみなすことができます。その場合は – Allen

+0

にデータを読み込んだ後、argparseオブジェクトから読み込んだ後に処理しますか?何が問題ですか、?ちょうど興味があると尋ねる。私はサンプルを書き、あなたも更新しようとします。 – Haranadh

答えて

2

通常、単一のダッシュフラグは1文字です。したがって-caは賢明ではありませんが、違法ではありません。通常のPOSIXの練習では、-c aまたは-c -aと解釈されます。

また、​​は、フラグ付き引数(optionals)を任意の順序で発生させることができます。

すべてのデフォルト値を割り当てることによって解析が開始されます。該当するフラグが見つかると、新しい値がデフォルト値を上書きします。その順序を考えると、1つの引数がデフォルトとして別の引数の値をとることは不可能です。

一般に、引数間の相互作用は、解析後に最もよく処理されます。 mutually_exclusiveグループがありますが、mutually_inclusiveはありません。カスタムActionクラスを介して何らかの相互作用を構築できますが、それを実装することは、解析後のテストと同じくらいの作業です。要するに

は、最も簡単な方法は、デフォルトdefaultNone、およびテストを使用することです

if args.ca is None: 
    args.ca = args.c 
関連する問題