¿Cómo puedo obtener la (s) clase (s) primaria (s) de una clase Python?¿Recibe padres de la clase?
Respuesta
Utilice el siguiente atributo:
cls.__bases__
Desde el docs:
La tupla de 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'>)
Si desea que todos los antepasados en lugar de sólo los inmediatos, utilice 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á a los antepasados al resolver un método (o, en realidad, cualquier otro atributo), métodos y otros atributos que vivan en el mismo espacio de nombres en Python, después de todo ;-).
También puede usar 'cls .__ mro__' (al menos en Python 3.5) – naught101
Las clases de nuevo estilo tienen un método mro al que puede llamar y devuelve una lista de clases principales en orden de resolución de métodos.
¿Qué cuenta como una clase de nuevo estilo? Parece que puedo usar esto con los modelos de Django, pero cualquier cosa simplemente heredando de 'objeto' no parece responder a' mro'. –
considerando un objeto 'x', podemos obtener la orden de resolución de métodos con la llamada' tipo (x) .mro() ' podemos considerar si' 'x' tiene ClassX' como una clase base con: 'ClassX en tipo (x) .mro()' – 648trindade
- 1. ClassPathResource no recibe la ruta de clase
- 2. invocando padres inicializador de la clase
- 3. ¿Obtener el nombre de la clase para padres?
- 4. Acceso a la propiedad Clase de Padres del niño
- 5. Recibe la última respuesta
- 6. php ruta del archivo de clase get padres
- 7. C# anidado clase de acceso para padres Miembro
- 8. clase de Padres C++ llamar a una función virtual niño
- 9. ¿Extender una clase para padres en PHP requiere que se incluya el archivo con la clase?
- 10. valor de aprobación a los padres en la declaración de la clase en Ruby
- 11. El constructor base no recibe la llamada
- 12. Guice con los padres
- 13. Salir de los padres div
- 14. herencia pitón diamante y el uso de super() en los padres de la clase derivada
- 15. implemento de la misma clase, solo padres diferentes, ¿cómo lidiar con esto?
- 16. Python herencia y llamando a los padres constructor de la clase
- 17. ¿Recibe el controlador PDO actual de la conexión existente?
- 18. Intent.ACTION_HEADSET_PLUG se recibe cuando comienza la actividad
- 19. Anulación de los padres en PHP
- 20. Recibe notificaciones actuales de Android
- 21. BroadcastReceiver No recibe Broadcast
- 22. padres vs parentNode
- 23. Android In Code recibe la versión de la aplicación?
- 24. ¿Recibe la URL de la solicitud en un frijol JSF?
- 25. jQuery - padres "este"
- 26. UIView referencia padres
- 27. ¿Los padres hasta() la mejor función para usar? JQuery
- 28. padres vs cercano
- 29. Restlet implementando la publicación con json recibe y responde
- 30. Cómo enable_shared_from_this de ambos padres y derivado
@FranckDernoncourt Este tema es ahora el resultado principal de Google para "Python get parent class". Es un poco más relevante que las otras preguntas de SO que componen los próximos 3 resultados. El quinto resultado es una página de Python docs que no da la respuesta, y el sexto resultado es finalmente una página de Python que da la respuesta, aunque profundamente en una larga página de texto. –
¿Por qué alguien leería los documentos cuando las explicaciones sobre SO son mucho más convincentes y de fácil acceso? Me tomó menos de 5 segundos desde el momento en que se me ocurrió esta pregunta hasta el momento en que llegué a esta página de Google, mientras que buscar en los documentos me hubiera llevado al menos cinco veces más tiempo y posiblemente un par de minutos. – jononomo
Como alguien que quería encontrar rápidamente esta respuesta, busqué en google, encontré este enlace, y terminé lo que necesitaba hacer: ¿por qué la gente (supongo que el comentario de SLott fue eliminado) se queja de una pregunta válida? Y sí, me doy cuenta de que llegué muy tarde a la fiesta aquí. – limasxgoesto0