Argparse模块类函数

时间:2017-06-29 03:12:01

标签: python class object methods argparse

我对模块arparse的组织有一点疑问 以下代码可在python在线文档中找到

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("echo")
args = parser.parse_args()
print(args.echo)

我假设argparse将是模块 argparse.ArgumentParser()将是模块中的,因此第2行只是创建该类的对象。下一行我们使用点运算符调用类中定义的方法。直到这一点都有意义。我在想args将是简单的变量但是当使用点运算符访问args.echo时,args是什么类型的?是parser.parse_args()返回ArgmentParser()类型的对象。 如果问题太天真,请道歉。

1 个答案:

答案 0 :(得分:0)

https://docs.python.org/3/library/argparse.html#the-namespace-object

  

类argparse.Namespace

     

parse_args()默认使用的简单类,用于创建一个包含属性的对象并将其返回。

尝试在您的发行版中找到argparse.py文件,并查看它,最好使用解析Python的编辑器。几乎所有的代码都是类。有几个实用程序基类(容器等),但关键的是使用__all__列表导入的。

在交互式进程中运行代码并查看创建的对象也很有启发性。或者只需添加大量print(parser)语句即可查看各自的str

parser = argparse.ArgumentParser()

创建一个ArgumentParser对象。

a = parser.add_argument("echo")

根据Action参数创建Action对象(实际上是action的子类。

args = parser.parse_args()

创建一个Namespace对象,

vars(args)

args属性创建字典对象。