Это потому, что super()
может вызываться только внутри определения метода класса (как в __init__
), и он всегда ссылается на себя. Следовательно, в этом нет необходимости, это избыточно.
Интересно, что вы упомянули: self
раньше требовалось всего несколько лет go (может быть 5 ... Я не могу вспомнить).
Думайте об этом как о вызове методов. Если у меня есть следующий класс:
class Conversation:
def __init__(self):
pass
def hi(self, name):
print(f'How are you doing, {name}?')
convo = Conversation()
convo.hi('Jason')
(output): 'How are you doing, Jason?'
Мне не нужно было указывать self
при вызове convo.hi
, мне нужно было только передать аргумент name
. Зачем? Потому что self
всегда нужен и, следовательно, избыточен.
Та же идея с super()
. :)