Изучаем Python. №13.ООП. Наследование.


Сегодня рассмотрим такую тему, как наследование. Я постараюсь привести наиболее простые примеры, чтобы вы могли легко в них разобраться.

Все методы — виртуальные
Явное указание имени класса для доступа к методу родителя.
person.__init__(self,n)

Код:
class person():
    def __init__(self,name):
        self.name = name
    def print_info(self):
        print self.name
    
class admin(person):
    def __init__(self,group,n):
        person.__init__(self,n)
        self.group = group
    def print_info(self):
        print self.name, self.group

Пробуем:
>>> p = person('Vitaliy')
>>> p.print_info()
Vitaliy
>>> a = admin('admins','Uriy')
>>> a.print_info()
Uriy admins

МНОЖЕСТВЕННОЕ НАСЛЕДОВАНИЕ

Код:
class perviy():
    def print_name_one(self):
        print "Perviy Klass"
        
class vtoroy():
    def print_name_two(self):
        print "Vtoroy Klass"

class naslednik(perviy,vtoroy):
    def print_parent_name(self):
        self.print_name_one()
        self.print_name_two()

Проверяем:
>>> n = naslednik()
>>> n.print_parent_name()
Perviy Klass
Vtoroy Klass

ФУНКЦИЯ SUPER

Эта функция принимает два параметра: имя класса и инстанс класс. И возвращает родительский Parent. Таким образом мы можем вызывать конструктор.

class Child(Parent):
    def __init__(self):
        super(Child.self).__init__(self)

Вот в сети нашел отличное видео по этой теме:

 

СПЕЦИАЛЬНЫЕ АТРИБУТЫ КЛАССОВ

__name__     - Имя класса
__module__   - Имя модуля, в котором класс определен
__doc__      - Строка документации класса. Или None, если она не определена.
__bases__    - Кортеж базовых классов в порядке их следования в списке базовых классов.
__dict__     - Словарь атрибутов классов.

Введи свой e-mail:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *