以计算长方形的面积为例,分别建立并调用Rec_S.py和Rec_S_arg.py两个文件,对比说明argparse的基本使用。
建立名称为Rec_S.py的文件,以演示一般情况下如何计算长方形面积。
# 计算长方形(Rectangle)的面积
"""
输入长方形的长(a)和宽(b),返回面积(s)
s = a * b
"""
def Rec_S(a,b):
s = a * b
return s
if __name__ == '__main__':
print(Rec_S(5,3))
建立名称为Rec_S_arg.py的文件,以演示调用了argparse模块的情况下如何计算长方形面积。
# 计算长方形(Rectangle)的面积(添加argparse模块)
"""
输入长方形的长(a)和宽(b),返回面积(s)
s = a * b
"""
import argparse
parse = argparse.ArgumentParser(description= '计算长方形面积') # 创建并描述容器parse的功能
parse.add_argument('a', type=int, help='长方形的长(a)') # 在容器里添加变量a、b,指定变量类型为int,在帮助文档里描述a、b的含义
parse.add_argument('b', type=int, help='长方形的宽(b)')
args = parse.parse_args()
def Rec_S_arg(a,b):
s = a * b
return s
if __name__ == '__main__':
print(Rec_S_arg(args.a,args.b))
使用命令 %run Rec_S_arg.py 5 3 调用Rec_S_arg.py
还可以通过命令 %run Rec_S_arg.py -h 调用Rec_S_arg.py的帮助文档
通过argparse的调用,将代码与参数分开,便于任意调整参数的设置。当项目的子文件非常多的情况下,这种方式非常便于管理子文件和调整参数。
比如本例中,如果不用argparse模块的话,当需要计算不同长宽的长方形面积时,每次都需要到Rec_S.py文件里面去修改a和b的取值。但是通过使用argparse模块,我们可以在jupyter notebbok里调用时任意修改a和b的取值。