Argparse 中的可选参数

Optional Arguments in Argparse

如果在代码中使用 argparse 时在命令行中传递的可选参数少于必需的可选参数,我该如何生成错误消息?例如,我有 5 个可选参数,如果任何时候使用的可选参数少于 4 个,我想生成一条错误消息。 我的初学者脑子想不出来。

import argparse
import math
parser = argparse.ArgumentParser(description='Loan Calculator')
parser.add_argument('--type', type=str)
parser.add_argument('--principal', type=int)
parser.add_argument('--periods', type=int)
parser.add_argument('--interest', type=float)
parser.add_argument('--payment', type=int)
args = parser.parse_args()

这是您调用 parse_args 后最容易处理的事情。计算有多少选项仍然具有默认值 None。如果超过 1 个,则引发错误。

args = parser.parse_args()
if 1 < sum(1 for x in [args.type, args.principal, args.periods, args.interest, args.payment] if x is None):
    sys.exit("Too few options specified")