[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