Python OOP: klasa, obiekt, dziedziczenie i konstruktor z przykładem
OOP w Python
OOP w Python to podejście do programowania, które koncentruje się na używaniu obiektów i klas w taki sam sposób, jak w innych ogólnych językach programowania. Obiektami mogą być dowolne byty ze świata rzeczywistego. Python umożliwia programistom tworzenie aplikacji przy użyciu podejścia OOP, ze szczególnym naciskiem na możliwość ponownego użycia kodu. Tworzenie klas i obiektów jest bardzo łatwe Python.
Co to jest klasa?
Klasa w Python to logiczne grupowanie danych i funkcji. Daje swobodę tworzenia struktur danych zawierających dowolną treść, a przez to łatwo dostępnych.
Na przykład każdy pracownik banku, który chce pobrać dane klienta online, musi przejść do klasa klienta, gdzie wymienione będą wszystkie jego atrybuty, takie jak szczegóły transakcji, szczegóły wypłat i wpłat, niespłacone zadłużenie itp.
Jak zdefiniować Python Klasy
Aby zdefiniować klasę, należy wziąć pod uwagę następujące punkty
Krok 1) In Python, klasy są zdefiniowane przez "Klasa" keyword
class myClass():
Krok 2) Wewnątrz klas można definiować funkcje lub metody będące częścią tej klasy
def method1 (self): print "Guru99" def method2 (self,someString): print "Software Testing:" + someString
- Tutaj zdefiniowaliśmy metodę 1, która wypisuje „Guru99”.
- Inną zdefiniowaną przez nas metodą jest metoda 2, która wypisuje „Testowanie oprogramowania” + SomeString. SomeString jest zmienną dostarczaną przez metodę wywołującą
Krok 3) Wszystko w klasie jest wcięte, podobnie jak kod funkcji, pętli, instrukcji if itp. Wszystko, co nie jest wcięte, nie należy do klasy
UWAGA: O używaniu słowa „self” w Python
- Argument self odnosi się do samego obiektu. Stąd użycie słowa self. Tak więc w tej metodzie self będzie odnosić się do konkretnej instancji tego obiektu, na którym się operuje.
- Self to nazwa preferowana przez konwencję Pythons, aby wskazać pierwszy parametr metod instancji w Python. Jest częścią Python składnia dostępu do elementów obiektów
Krok 4) Aby utworzyć obiekt klasy
c = myClass()
Krok 5) Aby wywołać metodę w klasie
c.method1() c.method2(" Testing is fun")
- Zauważ, że kiedy wywołujemy metodę 1 lub metodę 2, nie musimy podawać własnego słowa kluczowego. Jest to automatycznie obsługiwane przez Python czas wykonywania.
- Python środowisko wykonawcze przekaże wartość „self”, gdy wywołasz metodę instancji w instancji, niezależnie od tego, czy podasz ją celowo, czy nie
- Musisz po prostu zwracać uwagę na argumenty nie dotyczące siebie
Krok 6) Oto pełny kod
# Example file for working with classes class myClass(): def method1(self): print("Guru99") def method2(self,someString): print("Software Testing:" + someString) def main(): # exercise the class methods c = myClass () c.method1() c.method2(" Testing is fun") if __name__== "__main__": main()
Jak działa dziedziczenie
Dziedziczenie to funkcja używana w programowaniu obiektowym; odnosi się do zdefiniowania nowej klasy z mniejszą ilością modyfikacji lub bez modyfikacji istniejącej klasy. Nowa klasa nazywa się Klasy pochodnej i od tego, który dziedziczy, nazywa się baza. Python wspiera dziedziczenie; również wspiera wielokrotne dziedziczenie. Klasa może dziedziczyć atrybuty i metody zachowania z innej klasy zwanej podklasą lub klasą dziedziczną.
Python Składnia dziedziczenia
class DerivedClass(BaseClass): body_of_derived_class
Krok 1) Uruchom następujący kod
# Example file for working with classes class 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 methods c2 = childClass() c2.method1() #c2.method2() if __name__== "__main__": main()
Zauważ, że w klasie podrzędnej metoda 1 nie jest zdefiniowana, ale wywodzi się z nadrzędnej klasy myClass. Wynik to „Guru99”.
Krok 2) Odkomentuj wiersze nr 8 i 10. Uruchom kod
Teraz metoda 1 jest zdefiniowana w klasie 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) i Guru99 zostaje wydrukowany zgodnie z oczekiwaniami
Krok 4) Odkomentuj linię nr 19. Uruchom kod.
Wywoływana jest metoda 2 klasy potomnej i zgodnie z oczekiwaniami wypisywany jest komunikat „childClass method2”.
Python Konstruktorzy
Konstruktor to funkcja klasy, która tworzy instancję obiektu o wstępnie zdefiniowanych wartościach.
Zaczyna się od podwójnego podkreślenia (_). Metoda __init__()
W poniższym przykładzie bierzemy nazwę użytkownika za pomocą konstruktora.
class User: name = "" def __init__(self, name): self.name = name def sayHello(self): print("Welcome to Guru99, " + self.name) User1 = User("Alex") User1.sayHello()
Dane wyjściowe będą następujące:
Witamy w Guru99, Alex
Python 2 Przykład
Powyższe kody są Python 3 przykłady, jeśli chcesz wbiec Python 2 proszę rozważyć poniższy kod.
# How to define Python classes # Example file for working with classes class myClass(): def method1(self): print "Guru99" def method2(self,someString): print "Software Testing:" + someString def main(): # exercise the class methods c = myClass () c.method1() c.method2(" Testing is fun") if __name__== "__main__": main() #How Inheritance works # Example file for working with classes class 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 methods c2 = childClass() c2.method1() #c2.method2() if __name__== "__main__": main()
Poznaj nasz kolejny samouczek na temat Polimorfizm w Python
Podsumowanie
„Klasa” to logiczne zgrupowanie funkcji i danych. Python class zapewnia wszystkie standardowe funkcje programowania obiektowego.
- Mechanizm dziedziczenia klas
- Klasa pochodna, która zastępuje dowolną metodę swojej klasy bazowej
- Metoda może wywołać metodę klasy bazowej o tej samej nazwie
- Python Klasy są definiowane przez słowo kluczowe "klasa" samo
- Wewnątrz klas można definiować funkcje lub metody będące częścią klasy
- Wszystko w klasie jest wcięte, podobnie jak kod funkcji, pętli, instrukcji if itp.
- Argument własny w Python odnosi się do samego obiektu. Self to nazwa preferowana przez konwencję Pythons, aby wskazać pierwszy parametr metod instancji w Python
-
Python środowisko wykonawcze automatycznie przekaże wartość „self” po wywołaniu metody instancji w instancji, niezależnie od tego, czy podasz ją celowo, czy nie
- In Python, klasa może dziedziczyć atrybuty i metody zachowania z innej klasy zwanej podklasą lub klasą dziedziczną.