Python项目中定义命令行参数时需要注意哪些地方

  介绍

今天就跟大家聊聊有关Python项目中定义命令行参数时需要注意哪些地方,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

<强> 1,,常规用法

Python代码中主要使用下面几行代码来定义并获取需要在命令行中赋值的参数:

import  argparse    ,   时间=parser  argparse.ArgumentParser(“描述!”),# 1 - - - - - - - - - -   parser.add_argument (& # 39;——test1 # 39;,,=str,类型,默认=?“,,帮助=癟est1 帮助!”),# 2 - - - - - - - - - -   parser.add_argument (& # 39;——test2 # 39;,,类型=浮动,默认=2.1,,帮助=癟est2 帮助!”),# 2 - - - - - - - - - -   时间=args  parser.parse_args (), #, 3 - - - - - - - - - -      打印(args)   test1, test2 =, args.test1,, args.test2  #, 4 - - - - - - - - - -,   test1 print(类型(test1),,,, test1  +,“, add  test"),   print(类型(test2), test2,, test2  +, 100)

注释:

1,获取外部参数对象实例。可以传入字符串来描述总体的外部参数。

2,定义外部参数,可以多次调用来定义多个外部参数。函数的第一个参数是外部参数的名称,建议以两个减号开的头,中间不要使用数字字母下划线以外的符号,否则容易出错.type是你希望外部参数传入后转换的类型,比如,test1定义为str,即使命令行传参不添加引号,函数也将它转换为字符串(当然不加引号传字符串就不能用空格了)。而——test2是浮动,即使命令行传参带了引号,只要能转换为数字,函数都能转换为浮动类型.default是外部参数的默认值。如果命令行不对外部参数赋值而使用默认值,函数不会对你定义的默认值进行类型上的转换,所以默认最好直接定义为类型指定的类型(比如,test1的违约定义为“1”,而不是1).help传入对当前外部参数的描述,命令行中使用,帮助输出的就是这个只

3分析获取的外部参数。传出的是一个命名空间,类似于字典,但使用属性的方式而不是关键索引来获取命名对应的外部参数值。

4,以获取属性的方式获取外部参数。

需要注意的是,外部参数的定义必须写在获取外部参数之前,也就是说,parser.add_argument()要写在parser.parse_args()之前,否则外部参数无法被命令行捕获。另外,如果代码中没有parser.parse_args(),命令行就不能传参。

用命令行执行以上代码,命令与输出如下(以上代码保存为测试。py):

 Python项目中定义命令行参数时需要注意哪些地方

可以看的出,故意以数字和字符串的方式分别对字符串和浮动类型的外部参数赋值,函数都能正确地转换并正确地参与运算。

使用默认值时输出如下:

 Python项目中定义命令行参数时需要注意哪些地方

<强> 2,,注意事项,

通过以上的实验,argparse库似乎能将外部参数正确转换为各种类型,只要能转换。下面来实验是否能传入一个numpy数组。代码如下:

import  numpy  as  np   import  argparse    ,   时间=parser  argparse.ArgumentParser (),   parser.add_argument(& # 39;——数组# 39;,,=np.array类型,默认=np.array ([1, 2])),   时间=args  parser.parse_args (),      打印(args),   array =args.array   print(类型(数组))   打印(数组)   打印(时间+ array  1)

当使用默认值时:

 Python项目中定义命令行参数时需要注意哪些地方

运行正确,但当我们意图传入外部参数时:

 Python项目中定义命令行参数时需要注意哪些地方

尽管传入的[1,2]被转换为numpy。ndarray类型,它却并不能参与运算,所以,并不是所有的类型都能在命令行中传入的。

看完上述内容,你们对Python项目中定义命令行参数时需要注意哪些地方有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

Python项目中定义命令行参数时需要注意哪些地方