Hola! Al final la opcion __getitem__ / __setitem__ se ha demostrado como la correcta: bien por los que la recomendasteis, muy cracks!
En estos momentos tengo el codigo necesario para acceder al diccionario como yo queria, bueno, casi Me gustaria que el acceso a estas funciones sea recursivo con lo que este codigo funciona para el getter: def __getitem__(self, clave): partes = clave.split('/') if len(partes) > 1: return yDict.__getitem__(yDict(dict.__getitem__(self, partes[0])), '/'.join(partes[1:])) else: return dict.__getitem__(self, partes[0]) Pero para que esto sea posible, como podeis ver, hay que ir creando subobjetos yDict para poder usar la funcion customizada (cast) Lo malo de esta tecnica es que el subdiccionario se tiene que ir cambiando de tipo creando otro yDict nuevo Logicamente, cuando se lee todo va bien pero cuando se tiene que modificar, pues no (el subdiccionario, al pasar a yDict, se convierte en una copia) 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? Gracias! El 9 de octubre de 2010 00:12, Garito <gar...@gmail.com> escribió: > Manuel, Oswaldo, me pongo a revisar a ver que me encuentro, gracias, ahora > respondo > > Juan, a > Lo que busco es sobrecargar el setter del diccionario. Dame un rato que > mire lo que me han pasado y luego comento (estoy algo calentorro con esto, > conceptualmente, que me cuesta despistarme) > > Saludos, y gracias! Ahora vuelvo!! > > El 8 de octubre de 2010 22:04, Juan Ignacio <euriba...@gmail.com>escribió: > >> No acabo de entenderte, si con tu nuevo diccionario haces >> >> >> >>> a['a/b/c'] = 'abc' >> >> ¿Qué se supone que tiene que devolver cuando haces el get, o sea, cuando >> accedes a a['a/b/c']? >> >> Opción a) {'a': {'b': {'c': 'abc'}}} >> >> Opción b) 'abc' >> >> Tampoco entiendo: >> >> >> >Quiero poder hacer cosas como >> >> >>> a['a/b/c'] = 'abc' >> >> y que devuelva >> >> >>> {'a': {'b': {'c': 'abc'}}} >> >> >> a['a/b/c'] = 'abc' es una sentencia y no devuelve ningún valor. >> >> >> >> _______________________________________________ >> Python-es mailing list >> Python-es@python.org >> http://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > > -- > Mi twitter: http://twitter.com/garito > > Temet nosce > -- Mi twitter: http://twitter.com/garito Temet nosce
_______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/