本文从一个计算圆柱体体积的实例出发,帮助大家理解关于argparse模块的一些常见用法。argparse模块是命令行选项、参数和子命令解析器。可以让人轻松编写用户友好的命令行接口。适用于代码需要频繁地修改参数的情况。
先看下面一段没有使用argparse的代码
import math # 为了获取π
def cylinder_volume(radius, height):
vol = (math.pi) * (radius**2) * (height) # 体积公式
return vol
if __name__ == '__main__':
print(cylinder_volume(1, 3))
由以上可知,如果要计算其它圆柱体的体积,还需要在代码中修改半径和高度的参数。如果代码的规模很大,修改参数的过程会困难,不妨将这些需要频繁修改的参数放到代码外部,在命令行运行程序的时候一起输入,就用到了argparse模块。以下为修改后的代码
import math
import argparse # 导入argparse模块
# 用来装载参数的容器
parser = argparse.ArgumentParser(description='Calculate volume of a cylinder')
# 给这个解析对象添加命令行参数
parser.add_argument('radius', type=int, help='Radius of cylinder')
parser.add_argument('height', type=int, help='Height of cylinder')
args = parser.parse_args() # 获取所有参数
def cylinder_volume(radius, height):
return math.pi * (radius ** 2) * height
if __name__ == '__main__':
print(cylinder_volume(args.radius, args.height))