Python Argparse中的可选参数

Python Argparse中的可选参数,python,exception,command-line-arguments,argparse,optional-arguments,Python,Exception,Command Line Arguments,Argparse,Optional Arguments,如果在代码中使用argparse时在命令行中传递的可选参数少于必需的参数,如何生成错误消息?例如,我有5个可选参数,如果在任何时候使用的可选参数少于4个,我希望生成一条错误消息。 我的初学者大脑无法理解这一点 import argparse import math parser = argparse.ArgumentParser(description='Loan Calculator') parser.add_argument('--type', type=str) parser.add_ar

如果在代码中使用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")
args=parser.parse_args()
如果1<总和(如果x为无,则1代表[args.type,args.principal,args.periods,args.interest,args.payment]中的x):
sys.exit(“指定的选项太少”)

您至少需要四个,但五个中的哪四个并不重要?我不确定是否有支持这一点(似乎不可能在标准命令行使用格式中正确显示,而不指定4+的每个合法组合时使其变得异常冗长)。我认为你被困在手动测试中,可能是为了帮助生成使用信息。哪四个并不重要。如果在命令行中传递的参数少于四个,则应显示“不正确的参数”。我有指定所有可能的组合的想法,但我认为可以有一个更简单的方法。
if len([k代表k,v在args中。uu dict_uu.items(),如果v不是None])<4: