オプションの argparse 引数がユーザーによって設定されているかどうかを確認したいと思います。
issetを使って安全に確認できますか?
このようなもの:
if(isset(args.myArg)):
#do something
else:
#do something else
これは float / int / string 型の引数でも同じように機能しますか?
デフォルトのパラメータを設定して確認することもできます (例: myArg = -1 に設定するか、文字列の場合は ""、または "NOT_SET" に設定します)。ただし、最終的に使用したい値は、スクリプトの後半でのみ計算されます。したがって、デフォルトとして -1 に設定し、後で別の値に更新することになります。これは、値がユーザーによって設定されたかどうかを単純に確認するのに比べると、少し扱いにくいようです。
ベストアンサー1
--
オプション引数( で指定)None
は、指定されていない場合は に初期化されると思います。 そのため、 でテストできますis not None
。 以下の例を試してください。
import argparse
def main():
parser = argparse.ArgumentParser(description="My Script")
parser.add_argument("--myArg")
args, leftovers = parser.parse_known_args()
if args.myArg is not None:
print "myArg has been set (value is %s)" % args.myArg