Dziedziczenie w Pythonie | Dziedziczenie Pythona [z przykładem]

Opublikowany: 2020-12-14

Python to jeden z najpopularniejszych języków programowania. Pomimo przejścia pełnego wzlotów i upadków z wersji Pythona 2 do Pythona 3, język programowania obiektowego odnotował ogromny wzrost popularności.

Jeśli planujesz karierę jako programista Python, z pewnością będziesz mieć wyższą wypłatę. Ponieważ średnia pensja programisty Pythona wynosi około 119 082 USD rocznie. Ale zanim przejdziesz do programu do nauki Pythona, oto coś, o czym powinieneś wiedzieć w pierwszej kolejności: Dziedziczenie w Pythonie. Sprawdź nasze certyfikaty data science, jeśli chcesz zdobyć wiedzę na temat Pythona i innych narzędzi.

Zacznijmy od tego, czym dokładnie jest dziedziczenie w Pythonie?

Spis treści

Co to jest dziedziczenie w Pythonie?

Podobnie jak relacja nadrzędny-podrzędny, dziedziczenie działa w klasach pochodnych względem klasy bazowej. Każda klasa „pochodna” dziedziczy po klasie „podstawowej”. Dziedziczenie jest reprezentowane w UML lub Unified Modeling Language. Jest to standardowy język modelowania, który zawiera zintegrowany zestaw diagramów, które pomagają programistom w określaniu, strukturze i dokumentowaniu elementów systemów oprogramowania.

Relacja dziedziczenia definiuje klasy, które dziedziczą z innych klas jako klasy pochodne, podklasy lub podtypy. Klasa bazowa pozostaje źródłem, z którego dziedziczy podklasa. Na przykład masz klasę bazową „Zwierzę”, a „Lew” jest klasą pochodną. Dziedzictwem będzie Lew to Zwierzę.

Tak więc pytanie brzmi, co klasa „Lew” dziedziczy po „Zwierzęciu”?

Klasa „Lwa” dziedziczy

  • Berło
  • Wykonanie

Uwaga: Obiekty klasy pochodnej można zastąpić obiektami klasy bazowej w aplikacji znanej jako zasada podstawienia Liskov . Wskazuje, że jeśli program komputerowy ma obiekt P jako podtyp Q, można łatwo zastąpić P z Q bez zmiany właściwości.

Także kasa: Wynagrodzenie programisty Pythona w Indiach

Zalety dziedziczenia w Pythonie

  • Dziedziczenie w Pythonie pomaga programistom w ponownym wykorzystaniu obiektów.
  • Za każdym razem, gdy klasa dziedziczy klasę bazową, uzyskuje dostęp do funkcjonalności obiektu nadrzędnego.
  • Ponowne użycie ze względu na dziedziczenie jest również niezawodne, ponieważ klasa bazowa jest już przetestowana.
  • Niski czas i koszt opracowania
  • Standaryzacja interfejsu w klasach staje się łatwa.
  • Zmniejsza nadmiarowość kodu i pomaga poprawić rozszerzalność
  • Tworzenie bibliotek klas staje się łatwe.

Rodzaje dziedziczenia w Pythonie

Pojedyncze dziedziczenie

Widzieliśmy już, czym jest pojedyncze dziedziczenie – dziedziczenie klasy „Derived” z klasy „Base”. Zrozummy to na przykładzie,

klasa Kraj:

def ShowCountry(self):

print(„To jest Hiszpania”);

klasa Stan (kraj):

def ShowState(self):

print("To jest stan");

st =Stan();

st.ShowCountry();

st.ShowState();

Dziedziczenie wielopoziomowe

Python składa się z kilku obiektów, a dzięki wielopoziomowemu dziedziczeniu istnieją nieskończone możliwości ponownego wykorzystania funkcjonalności klas. Dziedziczenie wielopoziomowe jest dokumentowane za każdym razem, gdy klasa pochodna dziedziczy inną klasę pochodną. Nie ma ograniczeń co do liczby klas pochodnych, które mogą dziedziczyć funkcjonalności, dlatego wielopoziomowe dziedziczenie pomaga poprawić użyteczność w Pythonie.

Oto przykład dziedziczenia wielopoziomowego

klasa Zwierzę:

def mów (sam):

print("Mówiące zwierzę")

#Klasa potomna Pies dziedziczy klasę bazową Zwierzę

klasa Pies (Zwierzę):

def szczekać (samo):

print("szczekanie psa")

#Klasa potomna Dogchild dziedziczy inną klasę potomną Dog

klasa PiesDziecko (Pies):

def jedz (siebie):

print(„Jedzenie chleba…”)

d = PiesDziecko()

d.kora()

d.mowa()

zjedz ()

Dziedziczenie wielokrotne

Python umożliwia programistom dziedziczenie wielu funkcji i właściwości z różnych klas bazowych do jednej klasy pochodnej. Jest to w większości świetna funkcja, ponieważ pozwala dziedziczyć wiele zależności bez rozbudowanych narzędzi lub kodowania.

Spójrzmy na przykład dziedziczenia wielokrotnego.

klasa Obliczanie1:

def Sumowanie(self,a,b):

zwróć a+b;

Obliczanie klasy2:

def Mnożenie(self,a,b):

zwróć a*b;

Pochodne klasy (Obliczenia1, Obliczenia2):

def Podziel(siebie,a,b):

zwrot a/b;

d = pochodna ()

drukuj(d.Podsumowanie(10,20))

print(d.Mnożenie(10,20))

drukuj(d.Podziel(10,20))

Sprawdź: Jak przekonwertować mowę na tekst za pomocą Pythona

Jak zidentyfikować klasę pochodną?

Python ma wbudowaną funkcję issubclass(), która pomaga programistom sprawdzić, czy klasa jest klasą pochodną, ​​czy klasą bazową. Po uruchomieniu tej funkcji zwraca ona wynik „True” dla klasy podrzędnej lub klasy pochodnej, a False dla klasy podstawowej.

Deweloper może sprawdzić klasę za pomocą tego przykładu.

klasa mójWiek:

wiek = 36

klasa myObj(myAge):

imię = „Jan”

wiek = mójWiek

x = issubclass(myObj, myAge)

Jak stworzyć hierarchię klas w Pythonie?

Dziedziczenie w Pythonie pomaga tworzyć hierarchie klas. Wszystkie względne klasy będą dzielić wspólny interfejs do komunikowania się ze sobą. Klasa Base definiuje interfejs. Klasy pochodne mogą zapewnić określoną specjalizację interfejsu. Tutaj badamy model HR, aby zademonstrować hierarchię klas.

System HR będzie przetwarzał płace dla różnych pracowników firmy; każdy pracownik jest identyfikowany za pomocą identyfikatora i ma do obliczenia różne stanowiska płacowe.

Stwórzmy najpierw klasę płac jako obiekt „Baza”.

# W hr.py

klasa System płac:

def oblicz_płacę(samo, pracownicy):

print('Obliczanie listy płac')

print('===================')

dla pracownika w pracownikach:

print(f'Lista płac dla: {worker.id} – {worker.name}')

print(f'- Kwota czeku: {worker.calculate_payroll()}')

wydrukować(")

PayrollSystem wykonuje metodę .calculate_payroll() , która zbiera informacje o pracowniku, drukuje jego identyfikator, imię i nazwisko oraz sprawdza kwotę listy płac . Teraz uruchamiasz pracownika klasy bazowej, który obsługuje standardowy interfejs dla każdego typu pracownika:

# W hr.py

Pracownik klasowy:

def __init__(self, id, name):

self.id = identyfikator

self.name = imię

Utworzenie klasy bazowej Worker dla wszystkich typów pracowników w firmie ułatwia hierarchię dla systemu HR. Każdy pracownik otrzymuje imię i identyfikator. System HR wymaga od pracownika podania danych dotyczących jego tygodniowego wynagrodzenia za pośrednictwem interfejsu .calculate_payroll(). Wykonanie tego interfejsu może się różnić w zależności od typu pracownika.

Koniecznie przeczytaj: Pytania do rozmowy kwalifikacyjnej w Pythonie

Wniosek

Tutaj nauczyliśmy się tworzyć różne klasy Pythona, ustalać relacje między nimi, a nawet ustalać hierarchię klas. Ale dziedziczenie w Pythonie nie ogranicza się do wymienionych tutaj funkcjonalności.

Zaawansowana certyfikacja w uczeniu maszynowym i sztucznej inteligencji : IIT madras, jedna z najlepszych instytucji edukacyjnych w Indiach, nawiązała współpracę z upGrad, aby stworzyć zaawansowany kurs uczenia maszynowego dla osób fizycznych, aby dzięki temu kursowi mieli pełną wiedzę na temat uczenia maszynowego.

Jeśli jesteś zainteresowany nauką o danych, sprawdź program IIIT-B i upGrad Executive PG w dziedzinie Data Science , który jest stworzony dla pracujących profesjonalistów i oferuje ponad 10 studiów przypadków i projektów, praktyczne warsztaty praktyczne, mentoring z ekspertami z branży, 1 -on-1 z mentorami branżowymi, ponad 400 godzin nauki i pomocy w pracy z najlepszymi firmami.

Dlaczego dziedziczenie ma znaczenie w Pythonie?

Dziedziczenie odnosi się do procesu przekazywania właściwości klasy nadrzędnej do klasy podrzędnej. Jest to koncepcja programowania obiektowego (OOP) i jest istotna w Pythonie. Dzieje się tak, ponieważ dziedziczenie zapewnia możliwość ponownego wykorzystania kodu, co oznacza, że ​​zamiast pisać ten sam kod w kółko, możemy dziedziczyć atrybuty, których potrzebujemy w klasie potomnej. Jest również łatwy do zrozumienia i wdrożenia, ponieważ przedstawia rzeczywisty związek między klasami nadrzędnymi i podrzędnymi. Ma charakter przechodni. Ponieważ wszystkie klasy potomne dziedziczą właściwości po swoich rodzicach, wszelkie podklasy również będą korzystać z funkcji klasy nadrzędnej.

Czy dziedziczenie jest konieczne podczas nauki Pythona?

Tak, nauka dziedziczenia jest niezbędna podczas nauki Pythona. Ogromne aplikacje Pythona wymagają wzrostu liczby programistów Pythona na obecnym rynku. Ten wzrost doprowadził do wzrostu liczby osób uczących się Pythona. Język programowania Python jest bogaty w pojęcia, takie jak dziedziczenie. Jedną z podstawowych koncepcji tego języka programowania zorientowanego obiektowo jest dziedziczenie. Ponieważ dziedziczenie pozwala na ponowne użycie kodu, czytelność i przenoszenie właściwości, nauka go podczas nauki Pythona jest niezbędna. Dziedziczenie pomaga w tworzeniu dokładnego i wydajnego kodu.

Jakie typy dziedziczenia nie są obsługiwane w Pythonie?

Python pozwala na wszystkie formy dziedziczenia, w tym dziedziczenie wielokrotne, w przeciwieństwie do innych języków programowania obiektowego. Możliwe jest konstruowanie nowych klas z wcześniej istniejących przy użyciu koncepcji dziedziczenia. Ułatwia to ponowne użycie kodu. Metody określone w klasie nadrzędnej są również używane w klasie potomnej. Chociaż C++ umożliwia również tego rodzaju dziedziczenie, brakuje mu zaawansowanej i dobrze zaprojektowanej metodologii Pythona. Python oferuje nawet dziedziczenie hybrydowe, które pozwala nam zaimplementować wiele rodzajów dziedziczenia w jednym kawałku kodu. Ponieważ możliwość ponownego wykorzystania kodu jest mocną stroną dziedziczenia, jest ona pomocna w wielu aplikacjach podczas pracy z Pythonem.