簡體   English   中英

提取函數中的命令行參數名稱

[英]Extract names of Command line parameter in a function

我正在使用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 is not int”內的打印語句中打印出參數名稱“ quality”。如何提取參數名稱並在其中使用我還有更多命令行參數,所以我想要一個顯式錯誤,指出哪個參數不是整數。

一種方法是重寫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建議使用argparsetype參數更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM