当您使用Python的optparse模块为选项生成帮助时,您可以使用%defualt
占位符将该选项的默认值插入到帮助中。无论如何,当选择类型时,它是否为有效选择做同样的事情?
例如:
import optparse
parser=optparse.OptionParser()
parser.add_option("-m","--method",
type = "choice", choices = ("method1","method2","method3"),
help = "Method to use. Valid choices are %choices. Default: %default")
答案 0 :(得分:3)
我认为您的问题是您不想重复选择列表。幸运的是变量是普遍的,如果有时难以解决这类问题。所以丑陋但务实的答案是:
import optparse
choices_m = ("method1","method2","method3")
default_m = "method_1"
parser=optparse.OptionParser()
parser.add_option("-m","--method",
type = "choice", choices = choices_m,
default = defult_m,
help = "Method to use. Valid choices are %s. Default: %s"\
% (choices_m, default_m)
当然,使用argparse也可以做到这一点。
答案 1 :(得分:2)
正如@msvalkon所评论的那样,optparse
已被弃用 - 请改用argparse。
您可以在%(choices)s
参数中指定help
占位符:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-m",
"--method",
type=str,
choices=("method1", "method2", "method3"),
help = "Method to use. Valid choices are %(choices)s. Default: %(default)s",
default="method1")
parser.parse_args()
这是控制台上的内容:
$ python test.py --help
usage: test.py [-h] [-m {method1,method2,method3}]
optional arguments:
-h, --help show this help message and exit
-m {method1,method2,method3}, --method {method1,method2,method3}
Method to use. Valid choices are method1, method2,
method3. Default: method1
答案 2 :(得分:1)
argparse默认打印选项,如下面的演示中所示。自动打印默认值的一种方法是使用ArgumentsDefaultHelpFormatter
。
import argparse
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument("-m","--method", type=str, choices=("method1","method2","method3"),
default="method1", help = "Method to use.")
parser.parse_args()
DEMO:
msvalkon@Lunkwill:/tmp$ python test.py -h
usage: test.py [-h] [-m {method1,method2,method3}]
optional arguments:
-h, --help show this help message and exit
-m {method1,method2,method3}, --method {method1,method2,method3}
Method to use. (default: method1)