Использование super(ChildClass, self).method(args)
позволяет вам пройти порядок разрешения метода и - если все, кроме последнего родителя используют super
- вызывать каждый класс в иерархии ровно один раз.(Не то, чтобы super
работал только с классами нового стиля.)
Использование ParentClass.method(self, args)
вызывает один определенный класс.Он не работает, когда используется множественное наследование.
В этой статье приводится некоторое описание проблемы и разъясняется множество проблем для некоторых людей.Я не согласен со всеми его выводами, но он дает хорошие примеры и обсуждение.