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

określić Python 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ą.

określić Python Klasy

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ą.