Flernivåarv

Mjukvaruutvecklingsprinciper i Python

Adam Spannbauer

Machine Learning Engineer at Eastman

Skapa en Tweet-klass

  Tweet-klassfil

Mjukvaruutvecklingsprinciper i Python

Flernivåarv

Arvshierarki

Mjukvaruutvecklingsprinciper i Python

Flernivåarv

Utökad arvshierarki för flernivåarv

Mjukvaruutvecklingsprinciper i Python

Multipelt arv

Arvshierarki för multipelt arv

Mjukvaruutvecklingsprinciper i Python

Flernivåarv och 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!")

Läs mer om multipelt arv och super().

Mjukvaruutvecklingsprinciper i Python

Flernivåarv och 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!
Mjukvaruutvecklingsprinciper i Python

Hålla koll på ärvda attribut

# 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']
Mjukvaruutvecklingsprinciper i Python

Nu kör vi en övning!

Mjukvaruutvecklingsprinciper i Python

Preparing Video For Download...