Muchas gracias por sus respuestas, de verdad muy enriquecedoras, voy a estudiar y a evaluar cada una de las respuestas, no lo habia hecho antes ya que la empresa a la que trabajo (igual como programador) me ha absorbido
todo mi tiempo y esto es un desarrollo propio que llevo por mi cuenta.

Tambien quiero aprovechar para realizarles otra pregunta, la cual es... Existe alguna manera de obtener el nombre de la instancia de una clase desde la misma?? Es decir, tratando de hacer uso de la introspección de python, como pudiera hacer
algo como self.instancia, self.nombreinstancia??


------------------------------

Alvaro Manrique
Programador
PIN:     221C390B
Skype:   alvaro_manrique
Venezuela
------------------------------


On 16/08/11 12:23, Anler Hernandez Peral wrote:
Creo que la solución de Chema Cortes no es necesaria ya que según por lo que pones estás tratando de acceder al atributo desde una "instancia" de la clase que encapsula lo que sería un descriptor:

c = subclase
c.miembro.métodos_clasebase(xxx)

No obstante si estoy yo equivocado, y la asignación la quieres "sobrecargar" a la clase en sí, tendrías que implementar lo que dice Chema Cortes ya que las clases no son más que instancias de la clase "type"
--
anler


2011/8/16 Chema Cortes <pych...@gmail.com <mailto:pych...@gmail.com>>

    El día 16 de agosto de 2011 05:54, Alvaro Manrique
    <sanreikaj.fo...@gmail.com <mailto:sanreikaj.fo...@gmail.com>>
    escribió:
    > Gracias por la respuesta, voy a ver como lo puedo manejar en
    base a tu
    > respuesta y lo expongo aqui,
    > sin embargo para quien pueda apoyarme con mas información, esta
    clase esta
    > diseñada de esta manera,
    > sencilla y no debe tener metodos, ya que esta es una de las
    capas para la
    > abstractación de de la base de datos,
    > que forma parte de la capa de negocio del sistema en desarrollo.
    >
    > Esta clase corresponde a una tabla en la db y cada miembro es un
    campo, de
    > alli es el porque de que cada miembro
    > es una instancia de una clase base.

    Tal como lo comentas, trabajando directamente con los atributos de
    clase NO vas a poder evitar que una asignación "machaque" el atributo
    de clase. Aunque es algo complicado, he intentado explicarlo este
    motivo en los artículos sobre "descriptores" que estoy escribiendo en
    mi blog:

    http://ch3m4.org/blog/tag/descriptor/

    Para hacer lo que pretendes debes subir un nivel de abstracción, o lo
    que es lo mismo, debes trabajar desde una "metaclase".

    Rápidamente, sería algo así:

    class Meta(type):
           def __new__(meta, name, bases, dict):
                   def setattr(cls, name, value):
                           pass
                   dict["__setattr__"]=setattr
                   return type.__new__(meta, name, bases, dict)

    class subclase:
                   __metaclass__ = Meta
                   miembro = clasebase(parámetros)


    Si no quieres ir añadiendo el atributo __metaclass__ a cada clase,
    también puedes poner la metaclase como variable global al módulo donde
    estés definiendo las clases:

    class __metaclass__(type):
           def __new__(meta, name, bases, dict):
                   def setattr(cls, name, value):
                           pass
                   dict["__setattr__"]=setattr
                   return type.__new__(meta, name, bases, dict)

    class subclase:
                   miembro = clasebase(parámetros)


    Esta solución ignora la reasignación de atributos de clase. Lo suyo
    sería lanzar alguna excepción.

    --
    Hyperreals *R: http://ch3m4.org/blog
    Quarks, bits y otras criaturas infinitesimales
    _______________________________________________
    Python-es mailing list
    Python-es@python.org <mailto:Python-es@python.org>
    http://mail.python.org/mailman/listinfo/python-es
    FAQ: http://python-es-faq.wikidot.com/



_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
_______________________________________________
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