我不确定
能否有人向我解释清楚一下?谢谢。
optparse
的 metavar
参数用途是什么。我看到它被广泛使用,但却看不懂它的用法。能否有人向我解释清楚一下?谢谢。
正如@Guillaume所说,它用于生成帮助信息。如果您想要一个带参数的选项,例如文件名,您可以在add_option
调用中添加metavar
参数,以便将您首选的参数名称/描述符输出到帮助消息中。来自当前模块文档:
usage = "usage: %prog [options] arg1 arg2"
parser = OptionParser(usage=usage)
parser.add_option("-f", "--filename",
metavar="FILE", help="write output to FILE"),
会产生这样的帮助:
usage: <yourscript> [options] arg1 arg2
options:
-f FILE, --filename=FILE
“-f”和“--filename”后面的“FILE”来自于metavar。
metavar似乎用于生成帮助文档:http://www.python.org/doc/2.5.2/lib/optparse-generating-help.html
metavar
是一个变量,用于在选项后在屏幕上打印。通常用于建议用户输入选项后的FILE
、INT
或STRING
。如果没有metavar
,optparse
将在添加选项后打印dest
值。
有另一个有意义的使用场景可以使用 metavar,其中一个想要将“dest”用作参数查找标记,但通过 metavar 掩盖帮助消息(例如,在使用子解析器时有时很方便)。 (如 S.Lott 的注释中所示)。
parser.add_argument(
'my_fancy_tag',
help='Specify destination',
metavar='helpful_message'
)
或同样地
parser.add_argument(
dest='my_fancy_tag',
help='Specify destination',
metavar='helpful_message'
)
帮助将显示元变量:
./parse.py -h usage: parser [-h] destination
positional arguments:
helpful_message Specify destination
但是 dest 将会把 fancy_tag 存储在命名空间中:
./parse.py test
Namespace(my_fancy_tag='test')