Module (68%)
Section (35%)

Как Python находит свойства и методы: продолжение

Посмотрите на код в редакторе. Мы изменили его, чтобы показать Вам другой метод доступа к любому объекту, определенному внутри суперкласса.

В последнем примере мы явно назвали суперкласс. В этом примере мы используем функцию super(), которая обращается к суперклассу без необходимости знать его имя:

super().__init__(name)

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

Примечание: Вы можете использовать этот механизм не только для вызова конструктора суперкласса, но и для получения доступа к любым ресурсам, доступным внутри суперкласса.



Code

class Super:
def __init__(self, name):
self.name = name

def __str__(self):
return "My name is " + self.name + "."


class Sub(Super):
def __init__(self, name):
super().__init__(name)


obj = Sub("Andy")

print(obj)
{{ dockerServerErrorMsg }} ×
{{ errorMsg }} ×
{{ successMsg }} ×