En/na Garito ha escrit:
Me gustaria que el acceso a estas funciones sea recursivo

¿ por algún motivo en especial ?

> La pregunta seria: hay alguna forma de cambiarle el tipo
> (momentaneamente) sin crear otro objeto? O dicho de otra forma: puedo
> hacer un cast momentaneo?

Creo que lo que buscas es 'super':

class yDict(dict) :
    def __getitem__(self, clave):
        partes = clave.split('/', 1)
        if len(partes) > 1 :
            return super(yDict, self).__getitem__(partes[0])[partes[1]]
        else:
            return super(yDict, self).__getitem__(partes[0])

    def __setitem__(self, clave, valor) :
        partes = clave.split("/", 1)
        if len(partes) > 1 :
super(yDict, self).setdefault(partes[0], yDict())[partes[1]] = valor
        else :
            super(yDict, self).__setitem__(partes[0], valor)

¿Que debería ocurrir con este código?

d = yDict()
d["a/b"] = 1
d["a/b/c"] = 2



Saludos
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a