форматирование строки/передача значения не работает для формата

Учитывая следующие два метода:

def test():
   string = "{test}"
   print convert(string, test='test')

def convert(string, **test):
    return string.format(test)

Почему это вызывает KeyError: 'test'?

Как я видел в других потоках, это должен быть допустимый способ передачи значений, не так ли?


person Frame91    schedule 26.08.2015    source источник
comment
Для меня это выдает TypeError: format expects arg 2 to be string or unicode, not dict.   -  person BrenBarn    schedule 26.08.2015
comment
Извините, в моей версии была ошибка с форматом... Я изменил его в вопросе соответственно. Теперь должна быть ключевая ошибка   -  person Frame91    schedule 26.08.2015


Ответы (1)


Как показано в вопросе, на который вы ссылаетесь, вам необходимо расширить словарь ключевого слова-аргумента при передаче его в format:

return string.format(**test)
person BrenBarn    schedule 26.08.2015
comment
Спасибо. Я не заметил ** как параметр для метода. Теперь это работает! Я приму этот ответ, как только это будет возможно - person Frame91; 26.08.2015