其他分享
首页 > 其他分享> > 变量解析回调操作的用法并不表示需要额外的参数

变量解析回调操作的用法并不表示需要额外的参数

作者:互联网

我已经在我的python代码中实现了类似于此处的可变参数的回调:
hxxp://docs.python.org/library/optparse.html#callback-example-6-variable-arguments

像这样添加选项:

parser.add_option("-c", "--callback", dest="vararg_attr", action="callback", callback=vararg_callback)

问题是,没有向用户指示该选项需要额外的输入:

Options:  
    -h, --help      show this help message and exit  
    -c, --callback

有什么办法可以改变optparse的用法,以便用法显示如下:

-c=LIST, --callback=LIST

谢谢你的帮助!

解决方法:

这涉及到猴子补丁,可能不是最佳解决方案.另一方面,它似乎起作用.

from optparse import OptionParser, Option

# Complete hack.
Option.ALWAYS_TYPED_ACTIONS += ('callback',)

def dostuff(*a):
    pass

parser = OptionParser()
parser.add_option("-c",
                  "--callback",
                  dest="filename",
                  action="callback",
                  callback=dostuff,
                  metavar='LIST',
                  help='do stuff',
                  )

(options, args) = parser.parse_args()

输出:

Usage: opt.py [options]

Options:
  -h, --help            show this help message and exit
  -c LIST, --callback=LIST
                        do stuff

标签:optparse,callback,python
来源: https://codeday.me/bug/20191210/2103032.html