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解析后的键值索引时的键名;但是命令行调用还是用长短参数名
"""
posted @ 2020-11-17 14:31  Parallax  阅读(237)  评论(0编辑  收藏  举报