Przesłanianie metod w Pythonie

Opublikowany: 2023-01-28

Spis treści

Wymagania wstępne, aby zrozumieć przesłanianie metod:

Nadpisywanie metod jest jednym z najważniejszych pojęć w programowaniu obiektowym. Implementację określonej funkcji w klasie potomnej zdefiniowanej w klasie nadrzędnej można zmienić za pomocą nadpisywania metody. Nadpisywanie metod można zdefiniować jako zdolność klasy potomnej do zmiany wykonania metody oferowanej przez jedną z jej klas nadrzędnych, zwaną przodkami. Aby przesłonić funkcję, klasa musi spełnić następujące kryteria.

  • Klasa dziedziczna: Przesłanianie funkcji w obrębie klasy nie jest możliwe. Konieczne jest wyprowadzenie klasy potomnej z klasy nadrzędnej.
  • Sygnatura funkcji przedefiniowanej w klasie potomnej i sygnatura w klasie nadrzędnej powinny być takie same. Innymi słowy, funkcja nadpisana i funkcja w klasie nadrzędnej powinny mieć taką samą liczbę argumentów i parametrów.

Przegląd zastępowania metod w Pythonie:

Jak zdefiniowano wcześniej, metoda przesłaniająca właściwość obiektowego języka programowania, dzięki której podklasa zapewnia określoną implementację metody, która jest już oferowana przez jedną z jego nadklas. Mówi się, że metoda w podklasie (klasie potomnej) zastępuje metodę klasy nadrzędnej (klasy nadrzędnej), gdy metoda podklasy ma te same parametry lub sygnaturę, tę samą nazwę i identyczny zwracany typ lub podtyp jak metoda w jej nadrzędnej klasie.

Obiekt użyty do wywołania wykonywanej metody określa jej wersję. Wersja w nadklasie zostanie wykonana, jeśli obiekt w nadklasie zostanie użyty do wywołania metody. Jeśli jednak metoda zostanie wywołana przez obiekt w podklasie, wówczas zostanie wykonana wersja klasy potomnej. Innymi słowy, typ obiektu, do którego się odwołuje, służy do określenia wersji metody, która jest przesłonięta i wykonana. Wersja przesłoniętej metody nie jest określana przez typ zmiennej referencyjnej.

Sprawdź kursy nauki o danych firmy upGrad

Korzyści z nadpisywania metod:

Podstawową zaletą nadpisywania metod w Pythonie jest to, że klasa oferuje zdefiniowany przez siebie model dziedziczonej metodzie bez zmiany kodu klasy nadrzędnej. Ta funkcja jest również korzystna w przypadkach, gdy klasa podrzędna używa klasy nadrzędnej z wieloma klasami podrzędnymi. W takim przypadku metoda i parametry klasy nadrzędnej mogą być wywoływane przez klasę podrzędną bez modyfikowania kodu klasy nadrzędnej.

Zapoznaj się z naszymi popularnymi kursami Data Science

Executive Post Graduate Program in Data Science z IIITB Profesjonalny program certyfikatów w dziedzinie nauki o danych w podejmowaniu decyzji biznesowych Master of Science in Data Science na University of Arizona
Zaawansowany program certyfikacji w nauce o danych z IIITB Profesjonalny program certyfikatów w dziedzinie nauki o danych i analityki biznesowej na University of Maryland Kursy nauki o danych

Przeczytaj nasze popularne artykuły dotyczące nauki o danych

Ścieżka kariery w nauce o danych: kompleksowy przewodnik po karierze Rozwój kariery w Data Science: Przyszłość pracy jest tutaj Dlaczego nauka o danych jest ważna? 8 sposobów, w jakie analiza danych wnosi wartość do biznesu
Znaczenie nauki o danych dla menedżerów Najlepsza ściągawka do analizy danych, którą powinien mieć każdy analityk danych 6 najważniejszych powodów, dla których warto zostać naukowcem danych
Dzień z życia Data Scientist: Co oni robią? Obalony mit: analiza danych nie wymaga kodowania Business Intelligence vs Data Science: jakie są różnice?

Różnice między przesłanianiem metody a przeciążaniem metody

Przesłanianie metody

Przeciążenie metody

Metody lub funkcje zarówno w klasach nadrzędnych, jak i podrzędnych muszą mieć te same podpisy i te same nazwy. Funkcje lub metody muszą mieć takie same nazwy. Jednak ich podpisy nie muszą być takie same.
To jest przykład polimorfizmu w czasie wykonywania. Ten proces jest przykładem polimorfizmu w czasie kompilacji.
Dziedziczenie jest koniecznością przy zastępowaniu metod w Pythonie. W niektórych przypadkach może być wymagane dziedziczenie klas. Jednak nie we wszystkich przypadkach może być to wymagane.
Przesłanianie metod odbywa się między metodami w klasie nadrzędnej i klasie podrzędnej. Nie może się to jednak odbywać w ramach jednej klasy. Przeciążanie metod występuje między metodami w tej samej klasie.
Ta funkcja służy do zmiany zachowania istniejących metod. Służy do dodania więcej do zachowania metody.
Do nadpisywania metod wymagane są co najmniej dwie klasy (klasa potomna i klasa nadrzędna). Żadne dodatkowe klasy nie są wymagane, ponieważ przeciążanie występuje wśród metod w tej samej klasie.

Jeśli chcesz dowiedzieć się więcej o zastępowaniu metod w Pythonie, sugerujemy podjęcie 18-miesięcznego kursu Master of Science in Data Science . upGrad oferuje ten kurs z IIIT Bangalore i Liverpool John Moore's University. Kurs uczy umiejętności takich jak statystyka, analiza predykcyjna przy użyciu języka Python, uczenie maszynowe, wizualizacja danych, analiza dużych zbiorów danych i nie tylko. Studenci z dużą znajomością koncepcji Pythona są dobrze przygotowani do radzenia sobie z przedmiotami takimi jak głębokie uczenie się, przetwarzanie języka naturalnego, analityka biznesowa i inżynieria danych.

Chcesz udostępnić ten artykuł?

Przygotuj się na karierę przyszłości

Złóż wniosek o tytuł magistra w dziedzinie nauki o danych