3

次のような定義を持つpython関数(python 2.5)があります。

def Foo(a, b='Silly', c='Walks', d='Spam', e='Eggs', f='Ni', *addl):

何かaddlを行うための任意の数の文字列 (ファイル名) を指定できます。

すべてのデフォルトで問題ありませんが、ファイル名を入れる必要がありますaddl

私は次のようなことをする傾向があります:

Foo('me@domain.com', addl=('File1.txt', 'File2.txt'))

しかし、次のエラーが発生します。

TypeError: Foo() got an unexpected keyword argument 'addl'

Foo 最初の必須パラメーターと (可変数の) 追加の文字列だけで簡潔に呼び出すことができる構文はありますか? addlそれとも、引数の範囲に割り込む前に、すべてのデフォルトを重複して指定しているのですか?

議論のために、関数定義を変更またはリファクタリングすることはできません。

4

3 に答える 3

0

キーワード引数として使用しようとしてaddlいますが、位置引数として定義しています。*次のような関数を呼び出したい場合は、もう 1 つ追加する必要がありますFoo(addl=('File1.txt', 'File2.txt'))

def Foo(a, b='Silly', c='Walks', d='Spam', e='Eggs', f='Ni', **addl):
于 2016-04-04T15:05:49.493 に答える