问题 什么是命名空间对象?


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]? 什么是命名空间对象。我在哪里可以了解更多信息?


2846
2017-12-29 17:52


起源



答案:


  • 的文档 argparse.Namespace 可以被找寻到 这里
  • 你可以访问 s 通过做的属性 args.s
  • 如果你想以字典形式访问它,你可以这样做 vars(args),这意味着你也可以这样做 vars(args)['s']

13
2017-12-29 17:55





它是 结果对象 argparse 回报;命名的项目是属性:

print(args.s)

这是一个非常简单的对象,故意如此。您解析的参数是此对象的属性(名称由long选项确定,或者如果设置,则为 dest 论据)。


2
2017-12-29 17:54



非常感谢你的回答。我在哪里可以更多地了解这个命名空间对象?它在哪里以及如何使用?我在Google上找不到任何好的东西。 - Shashank Garg
我已将您链接到我的答案中的文档。真的,没有太多可说的。 - Martijn Pieters♦


答案:


  • 的文档 argparse.Namespace 可以被找寻到 这里
  • 你可以访问 s 通过做的属性 args.s
  • 如果你想以字典形式访问它,你可以这样做 vars(args),这意味着你也可以这样做 vars(args)['s']

13
2017-12-29 17:55





它是 结果对象 argparse 回报;命名的项目是属性:

print(args.s)

这是一个非常简单的对象,故意如此。您解析的参数是此对象的属性(名称由long选项确定,或者如果设置,则为 dest 论据)。


2
2017-12-29 17:54



非常感谢你的回答。我在哪里可以更多地了解这个命名空间对象?它在哪里以及如何使用?我在Google上找不到任何好的东西。 - Shashank Garg
我已将您链接到我的答案中的文档。真的,没有太多可说的。 - Martijn Pieters♦


你可以访问 args.s ,NameSpace类是故意简单的,只是一个带有可读字符串表示的对象子类。如果您希望使用类似dict的属性视图,则可以使用标准Python惯用法,即vars()。 资源 


0
2018-05-25 17:38