У меня есть функция питона (Python 2.5) с определением типа:Python взывает позиционный аргумент
def Foo(a, b='Silly', c='Walks', d='Spam', e='Eggs', f='Ni', *addl):
Где addl
может быть любое количество строк (имена файлов), чтобы сделать что-то с.
Я в порядке со всеми значениями по умолчанию, но у меня есть имена файлов для ввода addl
.
Я склонен сделать что-то вроде:
Foo('[email protected]', addl=('File1.txt', 'File2.txt'))
Но получает следующее сообщение об ошибке:
TypeError: Foo() got an unexpected keyword argument 'addl'
Есть ли синтаксис, где можно кратко назватьFoo
с только первым требуемый параметр и мое (переменное число) дополнительных строк? Или я застреваю с избыточным указанием всех значений по умолчанию, прежде чем я смогу переломить диапазон аргументов addl
?
Для аргументации определение функции не может быть изменено или реорганизовано.
Просто распаковать кортеж, он должен работать: Foo ('[email protected] «* („FILE1.TXT“,» File2 .txt ')) – AndreyT
@AndreyT: Это не работает. Он присваивает '' File1.txt'' 'a' и' 'File2.txt''' ''. – zondo
Да, ты прав. Таким образом, в случае 2.5 возможного решения используется использование kwargs вместо b, c, d, e, f параметров. – AndreyT