Я читаю программирование Python и не могу понять, что ** D означает следующие коды:Что означает ** D mean в string.format (** D)?
>>> D = {'say': 5, 'get': 'shrubbery'}
>>> '%(say)s => %(get)s' % D
'5 => shrubbery'
>>> '{say} => {get}'.format(**D)
'5 => shrubbery'
Я гугл ** kwargs в питоне и большинство результатов говорит о функции, чтобы взять произвольное количество аргументов ключевого слова.
string.format (** D) здесь не выглядит чем-то, чтобы позволить функции принимать произвольное количество аргументов ключевого слова, потому что я вижу, что переменная типа словаря D является всего лишь одним аргументом. Но что это значит?
Вы видели http://stackoverflow.com/questions/3394835/args-and-kwargs? –
Да, я действительно смотрел на этот вопрос, но я не мог установить связи там. ** kwargs там появляется только в функции def, а не при вызове функций или методов. – wokbot
Я упустил ответ на вопрос http://stackoverflow.com/q/1415812/2719588, данный Алексом Мартелли. Он сделал очень хорошую мысль: «Что касается использования ** kw в вызове», ... ... – wokbot