He aquí algo de lo que he tenido dudas. Considere el siguiente fragmento.paradigma OOPs en Python
class A(object):
def check(self):
super(A, self).check()
print "inside a"
class B(object):
def check(self):
print "inside b"
class C(A, B):
pass
c = C()
c.setup()
Ahora bien, esto da la salida,
inside b
inside a
La superación de esta a través de pdb veo que al llegar A.setup(), B.setup() se está llamando. Sin embargo, la llamada de A es al método de verificación de su superclase; como no existe, la llamada se mueve desde ese punto a B.check().
- ¿Alguien podría explicarme o señalarme un documento que explique cómo funciona esto internamente? No pude encontrar ninguno.
- ¿Podría alguien mostrarme una implementación similar en C++/Java? Creo que compararlo con otros idiomas me ayudaría a entender mejor el problema.
Muchas gracias.
Por lo que vale, Guido tiene un blog en el que nos cuenta un poco sobre la historia de Python. En un artículo reciente, él habla sobre la Orden de Resolución de Método: http://python-history.blogspot.com/2010/06/method-resolution-order.html –