作者: Each+ Apollo
文章目录
1. ArgumengParser
1.1. 作用
分配属性,可以从python执行命令参数中获取
1.2. 导包
# python
from argparse import ArgumentParser
1.3. 参数
ArgumentParser(prog=None)
- prog:显示的程序名,不填则默认是文件名
1.4. 属性
1.4.1. add_argument(*args, **kwargs)
声明创建属性的规则
参数
- 第一个参数: 必填,键名,格式:"-a"或"–a"
- dest: 非必填,参数名重置为
- default: 非必填,默认值
- type: 非必填,参数类型
- choices: 非必填,可选值,格式:列表,元组
- required: 非必填,是否必填,默认False
- namespace: 非必填,分配属性的对象
- help: 非必填,说明文字
举个栗子
# python
b = B()
parser = ArgumentParser()
parser.add_argument('--foo', dest='jjj', type=str, required=True)
parser.add_argument('-env', choices=['test', 'prod'])
1.4.2. parse_args(args=None, namespace=None)
将参数转为对象,并将属性分配给命名空间
参数
- args:非必填,赋值列表,必须一一对应
- namespace: 非必填,分配属性的对象
举个栗子
1.代码行分配
# python
a = parser.parse_args(['--foo', 'werw', '-env', '234'])
print(a.env)
# 输出 234
b = B()
parser.parse_args(['--foo', 'werw', '-env', '234'], namespace=b)
print(b.env)
# 输出 234
2.启动命令分配
# linux
python3 test.py --foo='www' -evn='234'
2. Namespace 命名空间
2.1. 作用
创建一个包含属性的对象,返回该对象
2.2. 导包
# python
from argparse import Namespace
2.3. 用法
# python
a = Namespace(env='test', level=2)
print(a.evn)
# 输出 test
print(a.level)
# 输出 2