Каждый метод получает экземпляр класса, вызывающий метод в качестве первого аргумента; __init__
не является исключением. foo = RNN(...)
вызывает foo.__init__(...)
для вызова, что эквивалентно RNN.__init__(foo, ...)
.
super
возвращает "прокси" для экземпляра, указанного его аргументами. Класс указывает начальную точку в MRO, чтобы решить, какой класс представляет прокси, а второй аргумент указывает, какой экземпляр. Вы практически никогда не пропускаете ничего, кроме класса и self
, а в Python 3 это значение по умолчанию: super().__init__()
.