zoukankan      html  css  js  c++  java
  • 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解析后的键值索引时的键名;但是命令行调用还是用长短参数名
    """
    
  • 相关阅读:
    各种计算
    C# 杂货
    Unity String格式化字符串
    unity 窗口化运行时取消边框
    WPF开机自启
    wpf 如何让当前窗口隐藏
    Unity 安卓杂货
    unity的一些杂货
    C# 项目中遇到过的坑(持续更新)
    C# 并入UI线程
  • 原文地址:https://www.cnblogs.com/Henry-ZHAO/p/13994029.html
Copyright © 2011-2022 走看看