python kwargs

¿Cómo hago un bucle a través de** kwargs en Python?



python argv (2)

Solo una nota rápida para aquellos que actualicen a Python 3.

En Python 3 es casi lo mismo:

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)

Observe que iteritems() convierte en items() ya que dict ya no tiene iteritems método.

En el código a continuación, quiero leer obj.subject y colocarlo en var subject, también leer obj.body y colocarlo en body . Primero quiero leer las variables de kwargs y buscar palabras clave dentro de la cadena para reemplazar, si no existe ninguna, kwargs .

¿Cómo puedo iterar a través de kwargs en 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)


Para usuarios de Python 3:

Puedes iterar a través de kwargs con .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)

Para usuarios de Python 2:

Puedes iterar a través de kwargs con .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)