Ответ katrielalex на самом деле является ответом на ваш вопрос, но он не подходит для комментария.
Если вы планируете использовать super
везде, и вы когда-нибудь задумывались о множественном наследованииОбязательно прочитайте ссылку "super () Считается вредной"super()
- отличный инструмент, но для правильного использования требуется понимание.По моему опыту, для простых вещей, которые, кажется, не могут попасть в сложные путаницы наследования алмазов, на самом деле проще и менее утомительно просто вызывать суперкласс напрямую и иметь дело с переименованиями, когда вы меняете имя базового класса.
Фактически, в Python2 вы должны включить текущее имя класса, которое, как правило, более вероятно изменится, чем имя базового класса.(И действительно, иногда очень трудно передать ссылку на текущий класс, если вы делаете дурацкие вещи; в момент, когда метод определен, класс не привязан ни к какому имени, а в момент, когда super
вызов выполнен, оригинальное имя класса может все еще не привязываться к классу, например, когда вы используете декоратор класса)