2016-10-28 8 views
0

私は2つの引数を持っています:--1stと--2nd "-2nd"引数は "1st"引数がセットされている場合にのみ必要です。引数のPython argparse依存性

例えば

「第一」を設定し、設定された「第2回」の場合 - 良い

「第1回」が設定されていない「第2回」に設定していない場合は -

その他良いですケースは悪いです。助けてください、

+0

両方の引数はオプションですか?または2番目のオプションのみですか? –

+0

オプションです。しかし、1セット目の場合は2位が必要です。 2nnが設定されている場合、最初に必要です。他のケースでは、エラーがある必要があります – GolovDanil

+0

私はそれらをargparseで両方ともオプションにし、 'parse_args'を呼び出した結果の検証チェックのために私自身のコードを書きます。 – larsks

答えて

2

私はKabanusのソリューションが好きです。

parser = argparse.ArgumentParser() 
parser.add_argument('--first') 
parser.add_argument('--second') 
options = parser.parse_args() 

# Error checking 
if (options.first is None) != (options.second is None): 
    print 'Error: --first and --second must both be supplied or omitted' 

ディスカッション

  • 私はoptions.1stが動作しないので、--1st--2ndを使用して、ためgetattr(options, '1st') is too messy. Instead, I useand --first --second`ません:ここでは、新規ユーザーのために簡単ですもう一つは、ありますイラストレーションの目的。
  • (options.first is None) != (options.second is None)は、エラー条件を簡潔に表現しています。
+0

有用なPython属性名に 'dest = 'first''を指定した場合でも、コマンドライン名として' - 1st'を使うことができます。 – ShadowRanger

関連する問題