提取函数中命令行参数的名称

时间:2014-06-13 15:51:16

标签: python command-line-arguments argparse

我正在使用ArgParse在Python中提供命令行参数。

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--quality", help="enter some quality limit")
args = parser.parse_args()
print "You gave quality = %s" % str(args.quality)

def is_number(s):
   try:
      val = int(s)
   except ValueError:
      print "That is not an int!"

is_number(args.quality)

我把它保存为a.py然后运行了这个:

$python a.py --quality 10
You gave quality = 10

如果我们输入一些字符而不是数字,我想打印出参数名称" quality"在函数内部的print语句中,#34; quality不是int"。如何提取参数的名称并在那里使用它。我有更多的命令行参数,所以我想要一个明确的错误说明哪个参数不是一个int。

1 个答案:

答案 0 :(得分:2)

一种方法是重写is_number以将参数名称作为字符串。

def is_number(args, argname):
    try:
        int(getattr(args, argname))
    except ValueError:
        print argname, "is not an integer"

is_number(args, "quality")

但Ben建议使用argparse的{​​{1}}参数更好。