Python:在回调函数内查看回调函数之前已由optparse解析的所有选项

时间:2014-12-03 15:14:05

标签: python linux callback args optparse

我在Python中编写了一个脚本,我已经添加了使用optparse的可选功能

>>python <script_name> -s <other options and args>

如果-s选项是第一个,则该函数可以正常工作,但如果稍后将其放在选项

中则不行
>>python <script_name> <some options and values> -s <other options and args`>

这是代码摘要

def show(option, opt_str, value, parser):
    (opts,args) = parser.parse_args(parser.rargs)
    #do stuff (requires opts.host and opts.username)

def options():
    parser = OptionParser()
    parser.add_option("-d", dest="host",default="127.0.0.1",
                     help="IP Address of server, defaults to localhost")
    parser.add_option("-U",default='user',dest="username",
                     help = 'Username')
    parser.add_option("-s","--show", action='callback', callback=show,
                     help = 'Prints a list of possible values and allows the user to select a value ')
    (options, args) = parser.parse_args()
    return options

#main()
opts = options()
#do stuff

有没有办法在调用回调之前看到已解析的args?

我知道我可以让-s选项将bool设置为true,如下所示:

    #main()
    opts = options()
    if opts.s:
       show()
    #do stuff

0 个答案:

没有答案