
Mark Lucas
0
1556
313
Metody języka Python często mogą być mylące, gdy przejdziesz do programowania obiektowego (OOP). Ten przewodnik obejmuje trzy główne typy metod w Pythonie.
3 typy metod w Pythonie
Istnieją trzy typy metod w Pythonie: metody instancji, metody statyczne, i metody klasowe.
Znajomość różnic nie zawsze jest wymagana do kodowania podstawowych skryptów Pythona, ale kiedy przejdziesz do OOP, różnice mogą wprowadzić dużą zmianę.
Jeśli dopiero zaczynasz przygodę z Pythonem lub po prostu chcesz eksperymentować bez konieczności instalowania czegokolwiek, koniecznie odwiedź te interaktywne powłoki online Pythona Wypróbuj Python w przeglądarce za pomocą tych bezpłatnych interaktywnych powłok online Wypróbuj Python w przeglądarce za pomocą tych bezpłatnych interaktywnych aplikacji online Powłoki Niezależnie od tego, czy przeglądasz te przykłady w języku Python, czy przeglądasz podstawy tablic i list, możesz przetestować kod bezpośrednio w przeglądarce. Oto najlepsze znalezione przez nas internetowe interpretatory języka Python. .
Zanim zaczniemy: zrozumienie wzorów dekoratorów
Przed spojrzeniem na różnice ważne jest zrozumienie wzorca projektowego znanego jako wzór dekoratora, lub po prostu o nazwie dekorator.
Dekoratorzy wydają się skomplikowani, ale nie ma się czego obawiać. Dekoratorzy to po prostu funkcje. Możesz napisać je samodzielnie lub użyć tych zawartych w bibliotekach lub standardowej bibliotece Pythona.
Jak każda funkcja, dekoratorzy wykonują zadanie. Różnica polega na tym, że dekoratorzy stosują logikę lub zmieniają zachowanie innych funkcji. Są doskonałym sposobem na ponowne użycie kodu i mogą pomóc w rozdzieleniu logiki na poszczególne problemy.
Wzorzec dekoratora jest preferowanym przez Pythona sposobem definiowania metod statycznych lub klasowych. Oto jak wygląda Python:
klasa DecoratorExample: „” „Przykładowa klasa” „” def __init __ (self): „” „Przykładowa konfiguracja” „” print („Witaj, świecie!”) @staticmethod def example_function (): „” „Ta metoda jest dekorowana!” "" print („Udekorowałem funkcję!”) de = DecoratorExample () de.example_function ()
Dekoratorzy muszą bezpośrednio poprzedzać deklarację funkcji lub klasy. Zaczynają od @ znak i, w przeciwieństwie do normalnych metod, nie musisz umieszczać nawiasów na końcu, chyba że podajesz argumenty.
Możliwe jest łączenie wielu dekoratorów, pisanie własnych i stosowanie ich również do klas, ale w tych przykładach nie musisz tego robić.
Metody instancji w Pythonie
Metody instancji są najczęstszym typem metod w klasach Python. Są to tak zwane, ponieważ mogą uzyskać dostęp do unikalnych danych swojego wystąpienia. Jeśli masz dwa obiekty utworzone z klasy samochodu, każdy z nich może mieć inne właściwości. Mogą mieć różne kolory, rozmiary silników, siedzenia i tak dalej.
Metody instancji muszą mieć samego siebie jako parametr, ale nie musisz tego przekazywać za każdym razem. Self to kolejny specjalny termin Python. Wewnątrz dowolnej metody instancji możesz użyć self, aby uzyskać dostęp do danych lub metod, które mogą znajdować się w twojej klasie. Nie będziesz mógł uzyskać do nich dostępu bez przejścia przez siebie.
Wreszcie, ponieważ metody instancji są najczęstsze, dekorator nie jest potrzebny. Każda tworzona metoda zostanie automatycznie utworzona jako metoda instancji, chyba że powiesz Pythonowi inaczej.
Oto przykład:
klasa DecoratorExample: „” „Przykładowa klasa” „” def __init __ (self): „” „Przykładowa konfiguracja” „” print („Hello, World!”) self.name = „Decorator_Example” def example_function (self): „” Ta metoda jest metodą instancji! ”„ ”Print („ Jestem metodą instancji! ”) Print („ Mam na imię ”+ self.name) de = DecoratorExample () de.example_function ()
The Nazwa zmienna jest dostępna poprzez samego siebie. Zauważ, kiedy przykładowa funkcja nazywa się, nie musisz przekazywać siebie w Python robi to za Ciebie.
Metody statyczne w języku Python
Metody statyczne to metody, które są w jakiś sposób powiązane z klasą, ale nie wymagają dostępu do danych specyficznych dla klasy. Nie musisz używać samego siebie, i nawet nie musisz tworzyć instancji, możesz po prostu wywołać swoją metodę:
klasa DecoratorExample: „” „Przykładowa klasa” „” def __init __ (self): „” „Przykładowa konfiguracja” „” print („Witaj, świecie!”) @staticmethod def example_function (): „” „Ta metoda jest metodą statyczną ! "" "print („ Mam statyczną metodę! ”) de = DecoratorExample.example_function ()
The @staticmethod Dekorator został użyty, aby powiedzieć Pythonowi, że ta metoda jest metodą statyczną.
Metody statyczne doskonale nadają się do funkcji narzędziowych, które wykonują zadanie w izolacji. Nie muszą (i nie mogą) uzyskiwać dostępu do danych klasy. Powinny być całkowicie niezależne i działać tylko z danymi przekazanymi jako argumenty. Możesz użyć metody statycznej, aby dodać dwie liczby razem lub wydrukować dany ciąg.
Metody klas w języku Python
Metody klasowe to trzeci i ostatni typ metody OOP, jaki należy znać. Metody klasowe wiedzą o swojej klasie. Nie mogą uzyskać dostępu do danych określonych instancji, ale mogą wywoływać inne metody statyczne.
Metody klasowe nie potrzebują samego siebie jako argument, ale potrzebują parametru o nazwie cls. To oznacza klasa, i podobnie jak ja, zostaje automatycznie przekazany przez Python.
Metody klas są tworzone za pomocą @classmethod dekorator.
klasa DecoratorExample: „” „Przykładowa klasa” „” def __init __ (self): „” „Przykładowa konfiguracja” „” print („Witaj, świecie!”) @classmethod def example_function (cls): „” „Ta metoda jest klasą method! "" "print ('I \' ma method class! ') cls.some_other_function () @staticmethod def some_other_function (): print (' Hello! ') de = DecoratorExample () de.example_function ()
Metody klasowe są prawdopodobnie bardziej mylącymi typami tych trzech metod, ale mają swoje zastosowania. Metody klas mogą manipulować samą klasą, co jest przydatne, gdy pracujesz nad większymi, bardziej złożonymi projektami.
Kiedy stosować każdy typ metody
Może to wydawać się trudną i zniechęcającą decyzją, wybierając między metodami w Pythonie, ale wkrótce zrozumiesz to z odrobiną praktyki.
Nawet jeśli piszesz tylko małe skrypty dla zabawy, poznanie innej funkcji OOP w Pythonie jest świetną umiejętnością do zrozumienia i może pomóc w ułatwieniu rozwiązywania problemów z kodem i ponownym użyciu w przyszłości.
W podsumowaniu:
- Metody instancji: Najpopularniejszy typ metody. Może uzyskać dostęp do danych i właściwości unikalnych dla każdej instancji.
- Metody statyczne: Nie mogę uzyskać dostępu do niczego innego w klasie. Całkowicie samodzielny kod.
- Metody klasowe: Może uzyskać dostęp do ograniczonych metod w klasie. Może modyfikować szczegółowe informacje dotyczące klasy.
Jeśli ten samouczek był nieco zaawansowany lub nie do końca to, czego szukasz, to dlaczego nie rzucić okiem na te kursy, aby przejść od języka Python dla początkujących do profesjonalnych 5 kursów, które zabiorą cię od języka Python dla początkujących do kursów Pro 5, które będą Przejdź od Python Beginner do Pro Te pięć kursów nauczy Cię wszystkiego o programowaniu w Pythonie, jednym z najgorętszych obecnie języków. ? Te 5 stron internetowych jest również świetnych dla początkujących Python. Jeśli chcesz korzystać z Pythona w świecie rzeczywistym, ale znudzi cię Raspberry Pi, co powiesz na nasz przewodnik po sterowaniu Arduino za pomocą Pythona Jak programować i kontrolować Arduino za pomocą Pythona Jak programować i kontrolować Arduino za pomocą Pythona Niestety, to niestety niemożliwe jest bezpośrednie zaprogramowanie Arduino w Pythonie, ale można sterować nim przez USB za pomocą programu Python. Oto jak. ?