2

optparseを使用していると、このエラーが発生しましたが、何が起こっているのか理解できません。ドキュメントは、なぜこれが発生しているのかを明確にするのに役立ちません。

コード:

formats = ['xml', 'json', 'yaml']
parser = optparse.OptionParser(usage = u, version = v)
parser.add_option('-s', '--src', dest = 'source_file', metavar = 'single source file')
parser.add_option('-f', '--format', dest = 'frmt', type = 'choice', choices = formats)
parser.add_option('-o', '--output', dest = 'output_file')

parser.set_default(frmt = 'xml', output_file = 'doc.xml')
opts, args = parser.parse_args()

gen_doc(opts.source_file, opts.frmt, opts.output_file)

エラー:

$ python main.py -s a -f xml -o a
Traceback (most recent call last):
  File "main.py", line 35, in <module>
    main()
  File "main.py", line 29, in main
    parser.set_default(frmt = 'xml', output_file = 'doc.xml')
TypeError: set_default() got an unexpected keyword argument 'frmt'

私の知る限り、set_defaultに設定されているインスタンスメンバーを認識する必要がありますadd_option

何か案は?

4

1 に答える 1

2

メソッドはset_defaults; 複数形に注意してください。 set_default(単数形で)2つのパラメーターを取ります。オプションの名前とその値。

于 2012-07-16T08:26:52.550 に答える