¿Puedo usar una asignación dinámica para desempaquetar argumentos de palabras clave en Python?

n pocas palabras, quiero llamar al formato con argumentos nombrados arbitrariamente, que formarán una búsqueda.

'{Thing1} and {other_thing}'.format(**my_mapping)

He intentado implementar my_mapping así:

class Mapping(object):
  def __getitem__(self, key):
    return 'Proxied: %s' % key
my_mapping = Mapping()

Que funciona como se esperaba al llamar amy_mapping['anything']. Pero cuando se pasa al formato () como se muestra arriba, obtengo:

TypeError: format() argument after ** must be a mapping, not Mapping

Intenté subclasificardict en lugar deobject, pero ahora llamando aformat() como se muestra planteaKeyError. Incluso implementé__contains__ comoreturn True, pero aúnKeyError.

Así que parece que** no solo llama a__getitem__ en el objeto pasado. ¿Alguien sabe cómo solucionar esto?

Respuestas a la pregunta(4)

Su respuesta a la pregunta