私はoptparse
もう少しよく知るようにしていますが、次のコードがそのように動作する理由を理解するのに苦労しています。私は愚かなことをしていますか?
import optparse
def store_test(option, opt_str, value, parser, args=None, kwargs=None):
print 'opt_str:', opt_str
print 'value:', value
op = optparse.OptionParser()
op.add_option('-t', '--test', action='callback', callback=store_test, default='test',
dest='test', help='test!')
(opts, args) = op.parse_args(['test.py', '-t', 'foo'])
print
print 'opts:'
print opts
print 'args:'
print args
出力:
opt_str:-t 値:なし 選択: {'テスト':'テスト'} args: ['foo']
なぜ'foo'
渡されずstore_test()
、代わりに追加の引数として解釈されるのですか?何か問題がありop.parse_args(['-t', 'foo'])
ますか?
↓</h2>
http://codepad.org/vq3cvE13
編集:
ドキュメントの例を次に示します。
def store_value(option, opt_str, value, parser):
setattr(parser.values, option.dest, value)
[...]
parser.add_option("--foo",
action="callback", callback=store_value,
type="int", nargs=3, dest="foo")