[Python-es] Limitar asignacion a miembro de clase

Anler Hernandez Peral anler86 en gmail.com
Mar Ago 16 08:12:49 CEST 2011


Hola Alvaro,

La mejor solución para lo que quieres hacer es que hacer que tu clase
"clasebase" sea un "descriptor", te dejo unos enlaces por si no sabes que
es:

http://users.rcn.com/python/download/Descriptor.htm
http://martyalchin.com/2007/nov/23/python-descriptors-part-1-of-2/

Los descriptores es un tema avanzado en Python y solo están disponibles para
clases "new style", te dejo un ejemplo para que lo veas en acción:

http://pastebin.com/T5sqTCHr

--
anler


2011/8/16 Alvaro Manrique <sanreikaj.foros en gmail.com>

> Buenas Noches;
>
>   Quisiera pedirles una pequeña ayuda con una duda que tengo, la expongo de
> la siguiente manera:
>
>   Tengo una clase (subclase) donde tiene unos miembros, los cuales son
> instancias de una clase base, esta clase base tiene métodos
> para asignar valor y obtenerlos.
>
> La subclase esta diseñada de la siguiente manera:
>
>   class subclase:
>
>        miembro = clasebase(parámetros)
>
> Cuando implemento la subclase funciona de maravilla llamando los métodos de
> la clase base.
>
>     c = subclase
>
>     c.miembro.métodos_clasebase(**xxx)
>
> Hasta aquí todo bien, es el comportamiento esperado para el desarrollo que
> llevo, el punto o mi duda esta en que
> puedo hacer lo siguiente:
>
>    c.miembro = "cualquier_valor"
>
> Al hacer esto el miembro deja de ser una instancia de la clase base y esto
> me ocasiona errores, quisiera poder evitar esta
> asignación a este miembro, hay alguna manera de hacerlo?
>
> Agradezco de antemano a cualquier ayuda u orientación que me puedan
> brindar.
>
> --
> ------------------------------
>
> Alvaro Manrique
> Programador
> PIN:     221C390B
> Skype:   alvaro_manrique
>
> ------------------------------
>
> ______________________________**_________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/**mailman/listinfo/python-es<http://mail.python.org/mailman/listinfo/python-es>
> FAQ: http://python-es-faq.wikidot.**com/<http://python-es-faq.wikidot.com/>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20110816/b6e747fb/attachment.html>


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