super().__init__() является аналогом base: в c#?

super().__init__() является аналогом base: в c#?


Ответы (1 шт):

Автор решения: Roman Konoval

base может использоваться в двух контекстах:

  1. для доступа к полям родительского класса
  2. для вызова конструктора родительского класса

Для первого типа использования аналогом base является super(). Для второго типа использования super().__init__ является аналогом base.

В питоне нет неявного использования конструктора и поэтому это одно и то же. super() возвращает ссылку на базовый класс, а ее можно использовать для доступа к методам или атрибутам класса, в частности для вызова специального метода __init__, который является конструктором.

→ Ссылка