OOP w Pythonie
OOP w Pythonie to podejście programistyczne, które koncentruje się na używaniu obiektów i klas tak samo, jak w przypadku innych ogólnych języków programowania. Obiekty mogą być dowolnymi bytami ze świata rzeczywistego. Python umożliwia programistom tworzenie aplikacji przy użyciu podejścia OOP, ze szczególnym uwzględnieniem możliwości ponownego wykorzystania kodu. Tworzenie klas i obiektów w Pythonie jest bardzo łatwe.
Co to jest klasa?
Klasa w Pythonie to logiczne zgrupowanie danych i funkcji. Daje swobodę tworzenia struktur danych, które zawierają dowolną treść, a tym samym są łatwo dostępne.
Na przykład dla każdego pracownika banku, który chce pobrać dane klienta online, przejdzie do klasy klienta , w której zostaną wymienione wszystkie jego atrybuty, takie jak szczegóły transakcji, szczegóły dotyczące wypłat i depozytów, niespłacone zadłużenie itp.
W tym samouczku nauczymy się,
- Jak definiować klasy w Pythonie
- Jak działa dziedziczenie
- Konstruktory Pythona
Jak definiować klasy w Pythonie
Aby zdefiniować klasę, należy wziąć pod uwagę następujące punkty
Krok 1) W Pythonie klasy są definiowane za pomocą słowa kluczowego „Class”
class myClass():
Krok 2) Wewnątrz klas możesz zdefiniować funkcje lub metody, które są częścią tej klasy
def method1 (self):print "Guru99"def method2 (self,someString):print "Software Testing: + someString
- Tutaj zdefiniowaliśmy method1, która wyświetla „Guru99”.
- Inną zdefiniowaną przez nas metodą jest method2, która wyświetla „Software Testing” + SomeString. SomeString to zmienna dostarczana przez metodę wywołującą
Krok 3) Wszystko w klasie jest wcięte, tak jak kod w funkcji, pętli, instrukcji if itp. Wszystko, co nie jest wcięte, nie znajduje się w klasie
UWAGA : Informacje o używaniu „self” w Pythonie
- Argument własny odnosi się do samego obiektu. Stąd użycie słowa jaźń. Więc wewnątrz tej metody self będzie odnosić się do konkretnego wystąpienia tego obiektu, na którym jest operowana.
- Self to nazwa preferowana przez Pythona zgodnie z konwencją do wskazania pierwszego parametru metod instancji w Pythonie. Dostęp do elementów składowych obiektów jest częścią składni Pythona
Krok 4) Wykonanie obiektu klasy
c = myClass()
Krok 5) Aby wywołać metodę w klasie
c.method1()c.method2(" Testing is fun")
- Zauważ, że kiedy wywołujemy metodę method1 lub method2, nie musimy podawać słowa kluczowego self. Jest to automatycznie obsługiwane przez środowisko wykonawcze Pythona.
- Środowisko wykonawcze Pythona przekaże wartość „self”, gdy wywołasz metodę instancji w instancji, niezależnie od tego, czy podasz ją celowo, czy nie
- Musisz tylko przejmować się argumentami o braku jaźni
Krok 6) Oto pełny kod
# Przykładowy plik do pracy z klasamiclass myClass ():def metoda1 (własna):print („Guru99”)def metoda2 (self, someString):print ("Testowanie oprogramowania: + someString)def main ():# ćwicz metody klasowec = myClass ()c.method1 ()c.method2 ("Testowanie jest fajne")if __name __ == "__main__":Główny()
Jak działa dziedziczenie
Dziedziczenie to funkcja używana w programowaniu obiektowym; odnosi się do definiowania nowej klasy z mniejszą lub żadną modyfikacją istniejącej klasy. Nowa klasa nazywana jest klasą pochodną, a od tej, którą dziedziczy, nazywana jest klasą podstawową . Python obsługuje dziedziczenie; obsługuje również wielokrotne dziedziczenie . Klasa może dziedziczyć atrybuty i metody zachowania z innej klasy zwanej podklasą lub klasą dziedziczącą.
Składnia dziedziczenia w Pythonie
class DerivedClass(BaseClass):body_of_derived_class
Krok 1) Uruchom następujący kod
# Przykładowy plik do pracy z klasamiclass myClass ():def metoda1 (własna):print („Guru99”)class childClass (myClass):#def metoda1 (własna):# myClass.method1 (self);#print ("childClass Method1")def metoda2 (własna):print ("childClass, metoda2")def main ():# ćwicz metody klasowec2 = childClass ()c2.method1 ()# c2.method2 ()if __name __ == "__main__":Główny()
Zauważ, że in childClass, method1 nie jest zdefiniowana, ale pochodzi z nadrzędnego myClass. Wynik to „Guru99”.
Krok 2) Odkomentuj wiersze nr 8 i 10. Uruchom kod
Teraz metoda 1 jest zdefiniowana w childClass, a wynik „childClass Method1” jest poprawnie wyświetlany.
Krok 3) Odkomentuj wiersz nr 9. Uruchom kod
Możesz wywołać metodę klasy nadrzędnej, używając składni
ParentClassName.MethodName(self)
W naszym przypadku wywołujemy myClass.method1 (self), a Guru99 jest drukowane zgodnie z oczekiwaniami
Krok 4 ) Odkomentuj wiersz nr 19. Uruchom kod.
Wywoływana jest metoda 2 klasy potomnej i zgodnie z oczekiwaniami drukowana jest metoda „childClass method2”.
Konstruktory Pythona
Konstruktor to funkcja klasy, która tworzy instancję obiektu na predefiniowane wartości.
Rozpoczyna się podwójnym podkreśleniem (_). It __init __ () metoda
W poniższym przykładzie bierzemy nazwę użytkownika za pomocą konstruktora.
class User:name = ""def __init__(self, name):self.name = namedef sayHello(self):print("Welcome to Guru99, " + self.name)User1 = User("Alex")User1.sayHello()
Wynik będzie:
Witamy w Guru99, Alex
Przykład Pythona 2
Powyższe kody są przykładami Pythona 3, jeśli chcesz uruchomić w Pythonie 2, rozważ poniższy kod.
# How to define Python classes# Example file for working with classesclass myClass():def method1(self):print "Guru99"def method2(self,someString):print "Software Testing: + someStringdef main():# exercise the class methodsc = myClass ()c.method1()c.method2(" Testing is fun")if __name__== "__main__":main()#How Inheritance works# Example file for working with classesclass myClass():def method1(self):print "Guru99"class childClass(myClass):#def method1(self):#myClass.method1(self);#print "childClass Method1"def method2(self):print "childClass method2"def main():# exercise the class methodsc2 = childClass()c2.method1()#c2.method2()if __name__== "__main__":main()
Podsumowanie:
„Klasa” to logiczna grupa funkcji i danych. Klasa Python zapewnia wszystkie standardowe funkcje programowania obiektowego.
- Mechanizm dziedziczenia klas
- Klasa pochodna, która przesłania dowolną metodę jej klasy bazowej
- Metoda może wywołać metodę klasy bazowej o tej samej nazwie
- Klasy Pythona są definiowane przez samo słowo kluczowe „class”
- Wewnątrz klas można definiować funkcje lub metody, które są częścią klasy
- Wszystko w klasie jest wcięte, podobnie jak kod w funkcji, pętli, instrukcji if itp.
- Argument self w Pythonie odnosi się do samego obiektu. Self to nazwa preferowana przez Pythona zgodnie z konwencją do wskazania pierwszego parametru metod instancji w Pythonie
- Środowisko wykonawcze Pythona automatycznie przekaże wartość „self”, gdy wywołasz metodę instancji w instancji, niezależnie od tego, czy podasz ją celowo, czy nie
- W Pythonie klasa może dziedziczyć atrybuty i metody zachowania z innej klasy zwanej podklasą lub klasą dziedziczącą.