programming oriented opp exercises español and python oop

opp - python object oriented programming pdf



Obtener padres de la clase? (4)

¿Cómo puedo obtener la (s) clase (s) primaria (s) de una clase Python?


Las clases de estilo nuevo tienen un método mro al que puede llamar y devuelve una lista de clases principales en orden de resolución de métodos.


Si desea todos los antepasados ​​en lugar de solo los inmediatos, use inspect.getmro :

import inspect print inspect.getmro(cls)

De manera útil, esto le proporciona todas las clases de antepasados ​​en el "orden de resolución de métodos", es decir, el orden en que se verificarán los antecesores al resolver un método (o, en realidad, cualquier otro atributo) y otros atributos en el mismo espacio de nombres en Python, después de todo ;-).


Si quiere asegurarse de que todos sean llamados, use super en todos los niveles.


Use el siguiente atributo:

cls.__bases__

De los docs :

La tupla de las clases base de un objeto de clase.

Ejemplo:

>>> str.__bases__ (<type ''basestring''>,)

Otro ejemplo:

>>> class A(object): ... pass ... >>> class B(object): ... pass ... >>> class C(A, B): ... pass ... >>> C.__bases__ (<class ''__main__.A''>, <class ''__main__.B''>)