Las clases de Python heredan de objetos, ¿por qué super debería tener su propio método?
super no apunta a la clase principal, apunta a la siguiente clase en mro, por lo que la subclase mixin que heredas heredará otra clase, el código fuente es ListView, por lo que super devuelve ListView.
clase A(objeto):
def __init__ (self):
print(self.__class__.(self):
print(self.__class__.__mro__)
def bark(self):
print("Soy A")
super(A, self) .
clase B(objeto):
def corteza(self):
imprimir("Soy B")
clase C(A, B):
def corteza(self):
print("Soy C")
super(C, self) .bark()
if __name__ == '__main__'.
c = C()
c.bark()
Resultados de ejecución:
(lt; Class '__main__.C'gt;, lt; Class '__main__.A'gt;, lt; Class '__main__.B'gt;, lt.class'objec
t'gt;)
Soy C
Soy A
Soy B
Porque en En el código fuente,
clase IndexView(BaseMixin, ListView):
Entonces, la llamada de BaseMixin a super(BaseMixin, self).get_context_data(**kwargs) es en realidad una llamada al Método ListView