[Python-es] Equivalente a __missing__ para el setter

Manuel Alejandro Cerón Estrada ceronman en gmail.com
Vie Oct 8 21:41:38 CEST 2010


Hola

El día 8 de octubre de 2010 13:43, Garito <garito en gmail.com> escribió:
> Hola!
> Estoy sobrecargando un diccionario
> Quiero poder hacer cosas como
>
> a['a/b/c'] = 'abc'
> y que devuelva
> {'a': {'b': {'c': 'abc'}}}
>
> para luego poder hacer
> a['a/b/c']
> y que devuelva
> abc
>
> El getter lo tengo ya funcionando usando __getattr__ y __missing__
> Tambien tengo el __seattr__ con lo que puedo hacer
> setattr(a, 'a/b/c', 'abc')
> funcionando correctamente pero me pregunto como tengo que programar el
> asunto para poder hacer lo de la 1a orden
> a['a/b/c'] = 'abc'
>
> Alguien sabe como?

Revisa los métodos __getitem__ y __settitem__:

http://docs.python.org/reference/datamodel.html#emulating-container-types

Saludos.

Manuel.


Más información sobre la lista de distribución Python-es