我对模块arparse的组织有一点疑问以下代码可以在python文档在线找到
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("echo")
args = parser.parse_args()
print(args.echo)
我假设argparse将是模块argparse.ArgumentParser()将是模块中的一个类,所以第二行只是创建该类的对象 . 下一行我们使用点运算符调用类中定义的方法 . 直到这一点都有意义 . 我在想args将是简单的变量但是当使用点运算符访问args.echo时,args是什么类型的?是parser.parse_args()返回ArgmentParser()类型的对象 . 如果问题太天真,请道歉 .
1 回答
https://docs.python.org/3/library/argparse.html#the-namespace-object
尝试在您的发行版中找到
argparse.py
文件,并查看它,最好使用解析Python的编辑器 . 几乎所有的代码都是类 . 有几个实用程序基类(容器等),但关键的是使用__all__
列表导入的 .在交互式进程中运行代码并查看创建的对象也很有启发性 . 或者只是添加大量的
print(parser)
语句来查看各自的str
.创建一个
ArgumentParser
对象 .根据
action
参数创建一个Action
对象(实际上是Action
的子类) .创建一个
Namespace
对象,从
args
属性创建字典对象 .