web-dev-qa-db-ja.com

名前空間オブジェクトとは何ですか?

_import argparse

parser = argparse.ArgumentParser(description='sort given numbers')
parser.add_argument('-s', nargs = '+', type = int)
args = parser.parse_args()
print(args)
_

コマンドラインでコマンドを実行する

_python3 file_name.py -s 9 8 76_

Namespace(s=[9, 8, 76])を出力します。

リストにアクセスするにはどうすればよいですか[9、8、76]?名前空間オブジェクトとは何ですか。詳細はどこで確認できますか?

20
Shashank Garg
  • _argparse.Namespace_のドキュメントは here にあります。
  • _args.s_を実行すると、s属性にアクセスできます。
  • 辞書としてこれにアクセスしたい場合は、vars(args)を実行できます。つまり、vars(args)['s']も実行できます。
19
Bill Lynch

argparseが返す結果オブジェクト ;名前付きの項目は属性です:

print(args.s)

これは非常に単純なオブジェクトですが、意図的にそうしています。解析された引数は、このオブジェクトの属性です(名前は、長いオプション、または設定されている場合はdest引数によって決定されます)。

2
Martijn Pieters

args.sとしてアクセスできます。NameSpaceクラスは意図的にシンプルで、読み取り可能な文字列表現を持つオブジェクトサブクラスです。属性のdictのようなビューが必要な場合は、標準のPython idiom、vars()。 Source を使用できます。

0