[Python-es] Derivacion condicional

Hernan Martínez-Foffani hernan en foffani.org
Jue Jul 12 21:16:43 CEST 2007


On 7/12/07, Oswaldo Hernández <listas en soft-com.es> wrote:
> Chema Cortes escribió:
> > El 12/07/07, Oswaldo Hernández <listas en soft-com.es> escribió:
> >> Chema Cortes escribió:
>
> > Supongo que lo debes tener claro; pero es dificil saber qué es lo que
> > buscas sin ver el grafo de herencias que tienes previsto. Por la
> > respuesta que has dado a Gerardo sospecho que las metaclases tampoco
> > te van a servir.
>
> El esquema de clases vendria a ser algo asi (debia de haber empezado por aqui :( )
>
> Clases A y B:  derivan de distintos objetos wx y establecen un
> interface comun para ellos.
>
> Clase C es la que, en funcion del entorno o de los parametros,
> decide si se ha de utilizar A o B, ademas de añadir algunos metodos.

me da la impresión que te estás complicándo demasiado porque
eso de cambiar la jerarquía de clases en tiempo de ejecución...
¿no puedes quitar a C de en medio?
¿estás *completamente seguro* que no tienes alternativas?

> Clases D, E, ... derivan de C y son las que establecen las propiedades y
> metodos finales para la
> funcion a realizar. Estas clases finales no tienen que preocuparse
> sobre si se esta utilizando A o B.

Como creo que ya te ha comentado Chema, si usas "duck typing" ni
siquiera te tienes que preocupar de dónde derivan los objetos de
D, E y demás. Usas los métodos y a otra cosa.

También podrías generalizar la interfaz común en una superclase
común a A y B. Recuerda que Python permite la herencia múltiple.



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