Как 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)