Многоуровневое наследование

Принципы разработки программного обеспечения на Python

Adam Spannbauer

Machine Learning Engineer at Eastman

Создание класса Tweet

  Файл класса Tweet

Принципы разработки программного обеспечения на Python

Многоуровневое наследование

Дерево наследования

Принципы разработки программного обеспечения на Python

Многоуровневое наследование

Расширенное дерево наследования

Принципы разработки программного обеспечения на Python

Множественное наследование

Дерево множественного наследования

Принципы разработки программного обеспечения на Python

Многоуровневое наследование и super

class Parent:
    def __init__(self):
        print("I'm a parent!")


class Child(Parent):
    def __init__(self):
        Parent.__init__()
        print("I'm a child!")

class SuperChild(Child): def __init__(self): super().__init__() print("I'm a super child!")

Подробнее о множественном наследовании и super().

Принципы разработки программного обеспечения на Python

Многоуровневое наследование и super

class Parent:
    def __init__(self):
        print("I'm a parent!")

class SuperChild(Parent):
    def __init__(self):
        super().__init__()
        print("I'm a super child!")

class Grandchild(SuperChild): def __init__(self): super().__init__() print("I'm a grandchild!")
grandchild = Grandchild()
I'm a parent!
I'm a super child!
I'm a grandchild!
Принципы разработки программного обеспечения на Python

Отслеживание унаследованных атрибутов

# Create an instance of SocialMedia
sm = SocialMedia('@DataCamp #DataScience #Python #sklearn')

# What methods does sm have? ¯\_(ツ)_/¯ dir(sm)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', 
'__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', 
'__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', 
'__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', 
'__str__', '__subclasshook__', '__weakref__', '_count_hashtags', 
'_count_mentions', '_count_words', '_tokenize', 'hashtag_counts', 
'mention_counts', 'text', 'tokens', 'word_counts']
Принципы разработки программного обеспечения на Python

Давайте потренируемся!

Принципы разработки программного обеспечения на Python

Preparing Video For Download...