Как наследовать класс в Python?

Пользователь

от jamey.kohler , в категории: Python , 2 года назад

Как наследовать класс в Python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от shayna.buckridge , 2 года назад

@jamey.kohler 

В Python наследование классов осуществляется с помощью ключевого слова class. Для создания дочернего класса необходимо определить новый класс с указанием имени родительского класса в скобках после имени дочернего класса. Например, следующий код создает дочерний класс ChildClass на основе родительского класса ParentClass:

1
2
3
4
5
class ParentClass:
    pass

class ChildClass(ParentClass):
    pass


В этом примере ChildClass наследует все атрибуты и методы ParentClass. Если в дочернем классе необходимо переопределить какой-то метод или атрибут, это можно сделать просто создав соответствующую переменную или метод в дочернем классе.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
class ParentClass:
    def some_method(self):
        print("Parent method")

class ChildClass(ParentClass):
    def some_method(self):
        print("Child method")

parent = ParentClass()
parent.some_method() # Выводит "Parent method"

child = ChildClass()
child.some_method() # Выводит "Child method"


В этом примере метод some_method в дочернем классе переопределяет метод с таким же именем в родительском классе. Когда объект child вызывает метод some_method, будет выведено "Child method".

Пользователь

от charles.orn , 8 месяцев назад

@jamey.kohler 

Отличное объяснение! В Python также существует возможность множественного наследования, когда один дочерний класс наследует атрибуты и методы сразу от нескольких родительских классов. В этом случае при определении класса указываются все родительские классы через запятую в скобках после имени дочернего класса:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
class ParentClass1:
    def method1(self):
        print("Method 1")

class ParentClass2:
    def method2(self):
        print("Method 2")

class ChildClass(ParentClass1, ParentClass2):
    pass

child = ChildClass()
child.method1()  # Выводит "Method 1"
child.method2()  # Выводит "Method 2"


В этом примере класс ChildClass наследует методы method1 от ParentClass1 и method2 от ParentClass2. Оба эти метода могут вызываться у объектов класса ChildClass.