Как я прохожу через ** kwargs в Python?
В приведенном ниже коде я хочу прочитать obj.subject
и поместить его в subject,
var subject,
также прочитать obj.body
и поместить его в body
. Сначала я хочу прочитать переменные kwargs
и искать ключевые слова в заменяемой строке, если она не существует, тогда переходите.
Как я могу итерации через kwargs
в Python?
for key in kwargs:
subject = str(obj.subject).replace('[%s]' % upper(key), kwargs[key])
for key in kwargs:
body = str(obj.body).replace('[%s]' % upper(key), kwargs[key])
return (subject, body, obj.is_html)
Ответы
Ответ 1
Для пользователей Python 3:
Вы можете выполнять итерацию через kwargs
с помощью .items()
subject = obj.subject
body = obj.body
for key, value in kwargs.items():
subject = subject.replace('[%s]' % key.toupper(), value)
body = body.replace('[%s]' % key.toupper(), value)
return (subject, body, obj.is_html)
Для пользователей Python 2:
Вы можете выполнять итерацию через kwargs
с помощью .iteritems()
:
subject = obj.subject
body = obj.body
for key, value in kwargs.iteritems():
subject = subject.replace('[%s]' % key.toupper(), value)
body = body.replace('[%s]' % key.toupper(), value)
return (subject, body, obj.is_html)
Ответ 2
Просто быстрое примечание для тех, кто обновляется до Python 3.
В Python 3 это почти то же самое:
subject = obj.subject
body = obj.body
for key, value in kwargs.items():
subject = subject.replace('[{0}]'.format(key.toupper()), value)
body = body.replace('[{0}]'.format(key.toupper()), value)
return (subject, body, obj.is_html)
Обратите внимание, что iteritems()
становится items()
поскольку dict
больше не имеет метода iteritems
.