3

ここにあるものと同様の変数引数のコールバックを Python コードに実装しました:
https://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
4

3 に答える 3

2

これにはモンキーパッチが含まれており、最善の解決策ではない可能性があります。一方、それはうまくいくようです。

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
于 2009-05-19T19:30:51.817 に答える
1

metavar次のキーワード引数を使用します。

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

参照: http://docs.python.org/library/optparse.html

于 2009-05-19T16:17:24.000 に答える