Kompletny przewodnik po koncepcjach OOP w Pythonie
Opublikowany: 2020-10-22Programowanie zorientowane obiektowo lub OOP jest już od jakiegoś czasu integralną częścią świata oprogramowania. Jest to doskonały paradygmat programowania, który oferuje pewien poziom swobody i zwiększa osiągnięcia programistyczne dla programisty.
Istnieją pewne podstawowe pojęcia i zasady, które powinien znać każdy programista. Stanowią przesłankę do tworzenia aplikacji w tym modelu.
Tutaj przyjrzymy się niektórym kluczowym, ale podstawowym pojęciom OOP w Pythonie . Te koncepcje prowadzą programistów do osiągania lepszych wyników, a także do modelowania swoich aplikacji we wzbogacający sposób.
Spis treści
Co to jest programowanie obiektowe?
Dla niewtajemniczonych to właśnie tam zaczniemy naszą indukcję. Zrozummy OOP tak, jak zrobiłby to laik, aby lepiej zrozumieć, jak możemy to wypracować.
W tej strukturze programowania możesz łatwo łączyć rzeczy o podobnych właściwościach lub zachowaniach w jeden obiekt. Jeśli mówisz o danych demograficznych, to staje się to pojedynczym przedmiotem dla tego modelu programowania. Podobnie, jeśli mówisz o działaniach, które należy podjąć, to staje się to kolejnym przedmiotem.
Są to wszystkie obiekty zawierające surowe dane. Twoje rozwiązanie programowe zaprogramuje te obiekty w taki sposób, aby wspólnie osiągnęły cel końcowy. Obiekty te wykonają razem kilka czynności, zgodnie z zaprogramowanymi przez ciebie, i dostarczą rezultat.
Doskonałym przykładem, który pomoże to zrozumieć, może być program pocztowy.
Załóżmy, że masz jeden obiekt zawierający treść wiadomości e-mail, taką jak imię i nazwisko odbiorcy oraz temat. Istnieje drugi obiekt, który szczegółowo opisuje załącznik i wysyłanie wiadomości e-mail. Zaprojektujesz program, który automatycznie połączy te obiekty, upewni się, że w pełni napisany e-mail jest gotowy z żądanymi załącznikami i wyśle go do odbiorcy.
Tak działa OOP. Jednak niektóre koncepcje wprowadzają to w życie. Rzućmy okiem na te koncepcje i sposób ich funkcjonowania.
Przeczytaj: Czy Python jest językiem zorientowanym obiektowo?
Jak zdefiniować klasę?
Klasa jest tym, co definiuje każdy obiekt i jest ważnym aspektem koncepcji OOP w Pythonie . Załóżmy, że masz cztery obiekty, takie jak oczy, uszy, usta i nos. To są części twarzy, która jest klasą.
Zacznijmy od tego, jak zdefiniować klasę.
Załóżmy, że mówisz o zajęciach o nazwie e-mail.
E-mail klasy:
podawać
Tak definiuje się klasę. Użyj „pass”, aby po uruchomieniu kodu w kompilatorze nie pojawiły się żadne błędy.
Samo zdefiniowanie klasy może ci niewiele pomóc. Musisz dodać kilka właściwości, aby był atrakcyjny, a kod pomocny. Musisz więc dodać obiekty do swojej klasy.
Metoda ._init_() okazałaby się przydatna podczas definiowania właściwości w klasie.
Zapewni to, że za każdym razem, gdy tworzysz nowy obiekt dla klasy, ta metoda ustawi parametry do stanu początkowego, co za każdym razem inicjuje nowy obiekt.
Pierwszym parametrem tej metody będzie zawsze self, nawet jeśli przypiszesz do niej wiele parametrów.
Co się dzieje w tym przypadku? Załóżmy, że utworzyłeś nowe zajęcia. Instancja jest przekazywana do parametru self. W rezultacie ._init_() może przypisać nowe właściwości do zdefiniowanego obiektu.
Jeśli nadal zastanawiasz się, jak z niego korzystać, zrozummy to na przykładzie.
E-mail klasy:
def ._init_(self, name, odbiorca, adres):
self.name = imię
self.recipient = odbiorca
własny.adres = adres
Podzielmy ten kod, aby lepiej zrozumieć.
Wcięcie wyrażone w powyższym kodzie jest krytyczne. Powinieneś dopasować to samo podczas pisania programu przy użyciu obiektów OOP w Pythonie . Rozumiemy zmienną self w powyższym kodzie.
self.name tworzy atrybut o nazwie name. Do tego atrybutu przypisana jest wartość parametru name. Podobnie atrybuty i wartości są również przypisywane do zmiennych innych jaźni.
Te atrybuty są znane jako instancja. Będziesz musiał określić wartość każdego atrybutu wymienionego w konkretnej instancji. Załóżmy, że istnieją dwa rodzaje e-maili – powitanie i pielęgnacja. Odbiorca wiadomości e-mail będzie inny w obu przypadkach (e-maile powitalne i wiadomości e-mail dotyczące pielęgnacji).
Z drugiej strony atrybuty klas są różne; będą zawierać tę samą wartość dla wszystkich instancji klasy. Na przykład są to wszystkie przychodzące wiadomości e-mail. Jest to atrybut klasy, który możesz dla nich zdefiniować.
E-mail klasy:
#Atrybut klasy

E-mail: „Wiadomości przychodzące”
def ._init_(self, name, odbiorca, adres):
self.name = imię
self.recipient = odbiorca
własny.adres = adres
Dowiedz się więcej: Jak kodować, kompilować i uruchamiać projekty Java
Zrozumienie zmiennych klas i instancji
Weźmy powyższy przykład, w którym stworzyliśmy atrybut klasy oraz dwie zmienne instancji, aby lepiej zrozumieć OOP w Pythonie .
E-mail klasy:
E-mail: „Wiadomości przychodzące”
def ._init_(self, name, odbiorca, adres):
self.name = imię
self.recipient = odbiorca
własny.adres = adres
Porozmawiajmy o tworzeniu instancji obiektów w tej klasie. Musisz ustawić wartości dla każdego z tych obiektów. Będzie to wartość początkowa dla każdego obiektu, o czym była mowa we wcześniejszej części poradnika. Jeśli nie przypiszesz wartości do tych obiektów, otrzymasz TypeError.
>>> E-mail()
Traceback (ostatnie ostatnie połączenie):
Plik „<pyshell#6>”, wiersz 1, w <module>
E-mail ()
TypeError: __init__() brak 4 argumentów pozycyjnych: „nazwa”, „odbiorca” i „adres”
Możemy dodać wartość zaraz po nazwie klasy.
E-mail Nurture = E-mail (Nurture, David, [email protected])
E-mail powitalny = E-mail (Witamy, Daisy, [email protected])
Za pomocą powyższego kodu wygenerowaliśmy dwie instancje, dla e-maila pielęgnacyjnego i e-maila powitalnego. Sprawdźmy __init__() zdefiniowaną po wystąpieniu klasy dla powyższego kodu. Widzimy cztery parametry, w tym siebie. Jednak nie wymieniono żadnej zmiennej dla siebie. Zrozummy dlaczego?
Tak więc za każdym razem, gdy tworzysz nowy obiekt w klasie, tworzysz instancję klasy. Robiąc to, przypiszesz adres pamięci, pod którym będzie przechowywana zmienna. Gdy tylko utworzysz instancję nowego obiektu, Python automatycznie utworzy instancję i zostanie ona przekazana do pierwszej zmiennej w metodzie .__init__(). W rezultacie jaźń jest usuwana w tej metodzie.
Dzięki zmiennej class możesz upewnić się, że każda utworzona instancja ma powiązaną z nią zmienną lub wartość. Zapewni to szybsze i łatwiejsze wyniki, a tym samym bezpieczniejsze wnioski dla Twojego programowania.
Przeczytaj także: Musisz przeczytać 47 pytań i odpowiedzi do wywiadu OOPS dla świeżo upieczonych i doświadczonych
Podsumowując
Zrozumieliśmy tutaj różne aspekty tworzenia klasy, obiektu i metody przy użyciu modelu programowania Python OOPs. Oprócz tego zrozumieliśmy również pojęcia, takie jak instancje i tworzenie instancji, które są podstawą programowania obiektów OOP w Pythonie. Następnie musisz zrozumieć zasady rządzące tymi instancjami i klasami, takie jak dziedziczenie, polimorfizm, abstrakcja i enkapsulacja. Są to podstawowe koncepcje OOP w Pythonie , które napędzają twoją aplikację i jej wyniki.
Aby przejść dalej na ścieżce Pythona, musisz mieć jasne i zakorzenione podstawy. Zanurz się więc w zajęcia i zrozum, jak to działa. Pobaw się trochę tymi zmiennymi i zrozum ich wyniki, zanim będziesz mógł skonfigurować swoją aplikację.
Jeśli interesuje Cię nauka nauki o danych, aby być na czele szybkiego postępu technologicznego, sprawdź Dyplom PG w zakresie nauki o danych i podnoś swoje umiejętności na przyszłość.
Dlaczego używamy OOP?
Programowanie zorientowane obiektowo (OOP) to struktura programistyczna, która opiera się na opracowywaniu „obiektów” wielokrotnego użytku z ich atrybutami i zachowaniem, na których można działać, manipulować i pakować. Python obsługuje zarówno OOP, jak i inne frameworki. W Pythonie możesz osiągnąć OOP używając klas. Python ma wszystkie typowe cechy programowania obiektowego. Deweloperzy wykorzystują OOP w swoich aplikacjach w Pythonie, ponieważ sprawia, że kody są bardziej przydatne do ponownego użycia i łatwiejsza praca z większymi programami. Ponieważ klasę można zdefiniować tylko raz i używać wielokrotnie, systemy OOP zapobiegają duplikowaniu kodu. W rezultacie program OOP ułatwia przestrzeganie koncepcji „Nie powtarzaj się” (DRY).
Czym jest klasa?
Klasa Pythona jest podobna do planu generowania nowego obiektu. Obiekt to wszystko, co chcesz zmodyfikować lub zmienić podczas kodowania. Kiedy tworzymy instancję obiektu klasy, co ma miejsce, gdy definiujemy zmienną, nowy obiekt jest tworzony od podstaw. Obiekty klasy mogą być ponownie użyte tyle razy, ile potrzeba. Do konstruowania każdego elementu używana jest klasa. Potraktuj to jako plan pewnego rodzaju przedmiotu. Klasy zawierają listę atrybutów wymaganych dla tego typu obiektu, ale nie przypisują im wartości. Klasy określają również metody, które są wspólne dla wszystkich obiektów tego samego typu.
Co to jest zmienna instancji?
Instancja klasy posiada zmienne instancji w Pythonie. Wartość zmiennej instancji może się zmieniać w zależności od instancji, z którą jest połączona. Różni się to od zmiennej klasy, do której można przypisać tylko jedną wartość. Zmienne instancji są deklarowane w ramach metody klasy. Kiedy deklarujemy klasę, możemy przypisać wartości do zmiennych instancji. Kiedy deklarujemy klasę, podajemy wartości, które chcemy przypisać jako argumenty.