http://docs.python.org/library/functions.html#super
Czyli: mamy klasę Foo, posiadającą metodę foo(), po której dziedziczy
klasa Bar również posiadająca metodę foo:
>>> class Foo(object):
... def foo(self):
... print "f"
...
>>> class Bar(Foo):
... def foo(self):
... print "b"
...
>>>
Stworzenie obiektu klasy Bar i wywołanie metody foo() spowoduje
wyświetlenie tylko napisu "b".
>>> obj = Bar()
>>> obj.foo()
b
>>>
Natomiast:
>>> class Bar(Foo):
... def foo(self):
... super(Bar, self).foo()
... print "b"
...
>>> obj = Bar()
>>> obj.foo()
f
b
>>>
Czyli, super spowodowało uruchomienie metody (foo()) na rzecz obiektu
po którym dziedziczy Bar – stąd pierwszy argument jaki super
przyjmuje to Bar a nie Foo. Oczywiście ten przykład jest bardzo
trywialny, ale nietrudno sobie wyobrazić sytuację, gdzie zamiast
printów znajduje się konkretny kod robiący istotne rzeczy.
To tylko wierzchołek góry lodowej, dokładne wyjaśnienie jak z tego
korzystać, żeby się nie skaleczyć znajdziesz pod linkami:
https://rhettinger.wordpress.com/2011/05/26/super-considered-super/
http://fuhm.net/super-harmful/
--
-^- _ coś tam w tle sobie gra, np:
_ /O)_\// Thomas "Drax" Mogensen - Heaven
(_(|__(_(_) grf.