Przesłanianie metod w Pythonie
Opublikowany: 2023-01-28Spis 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.