Supongamos que tiene una clase base A, y esta clase se vuelve a implementar por B y C. Supongamos que también hay un método de clase A.derived()
que le indica qué clases se vuelven a aplicar A, por lo tanto devuelve [B, C] y si posteriormente tener class D(A): pass
o class D(B): pass
, ahora A.derived()
devuelve [B, C, D].¿Cómo saber todas las clases derivadas de un padre?
¿Cómo implementaría el método A.derived()
? Tengo la sensación de que no es posible a menos que use metaclases. Puede atravesar el árbol de herencia solo de hijo a padre con el mecanismo estándar. Para tener el enlace en la otra dirección, debes mantenerlo "a mano", y esto significa anular la mecánica de declaración de clase tradicional.
¿Por qué? ¿Por qué no puedes leer la fuente para determinar esto? –
@ S.Lott: estoy jugando con el búho. no preguntes –