python命令行传参解析(一)------argparse
https://www.cnblogs.com/gmpy/p/11796416.html
"""
python:
main(argc, argv[])
argv[ ]默认的第一个参数是传进来的执行文件名,即argv[0] = xx.py ,因此argc最小是1
parser = parser
2 源码中创建parser对象:parser.add_argument
3 参数命名带前缀--:表示是有默认值的参数(源码中用default设置默认值),命令行传参时可传可不传(一般都是长参数或者长短皆有)
4 参数名不带前缀:表示命令行调用时必须的形参
5 type:设置传参数据类型
6 help:调用时加 -h 首先打印出的提示信息
"""
import argparse
parser = argparse.ArgumentParser() #创建parser类实例
parser.add_argument("--square", help = "display a square of a given number", type=int, default=3)
# parser.add_argument("--square", dest= "other_name_of_square",help = "display a square of a given number", type=int,default=3)
# 添加可选参数,需要在定义变量名的时候加 --
parser.add_argument("--cubic", help="display a cubic of a given number", type=int, default=5)
# 命令行调用的时候也要加 -- 变量名
args = parser.parse_args() #parser类实例的解析
print(args)
"""Namespace(cubic=5, square=3)"""
# Namespace(cubic=5, other_name_of_square=3) # dest参数影响的是args解析后的键值索引时的键名(参数命名空间)
# if args.square:
# print(args.square**2)#使用域名运算符获取
# # if args.other_name_of_square:
# # print(args.other_name_of_square**2)
# if args.cubic:
# print(args.cubic**3)
"""
如果参数名仅用长参数名或短参数名,则变量被解析后的实际访问参数名就是去掉长短线之后的args.name
如果参数名后又dest = " "项,那么原有的长短参数名在代码中的参数命名空间中被更改为dest_name
即dest参数影响的是args解析后的键值索引时的键名;但是命令行调用还是用长短参数名
"""