Python OOPs: Klasse, Objekt, Vererbung und Konstruktor mit Beispiel

OOPs in Python

OOPs in Python ist ein Programmieransatz, der sich auf die Verwendung von Objekten und Klassen konzentriert, genau wie bei anderen allgemeinen Programmiersprachen. Die Objekte können beliebige reale Entitäten sein. Python ermöglicht es Entwicklern, Anwendungen mit dem OOP-Ansatz zu entwickeln, wobei der Schwerpunkt auf der Wiederverwendbarkeit des Codes liegt. Es ist sehr einfach, Klassen und Objekte in Python.

Was ist eine Klasse?

Eine Klasse in Python ist eine logische Gruppierung von Daten und Funktionen. Sie bietet die Freiheit, Datenstrukturen zu erstellen, die beliebige Inhalte enthalten und daher leicht zugänglich sind.

Ein Bankangestellter, der beispielsweise die Kundendaten online abrufen möchte, würde zu Kundenklasse, wo alle Attribute wie Transaktionsdetails, Auszahlungs- und Einzahlungsdetails, ausstehende Schulden usw. aufgelistet werden.

Wie zu definieren Python Unterricht

Um eine Klasse zu definieren, müssen Sie folgende Punkte berücksichtigen

Schritt 1) In Python, Klassen werden definiert durch die "Klasse" Stichwort

class myClass():

Schritt 2) Innerhalb von Klassen können Sie Funktionen oder Methoden definieren, die Teil dieser Klasse sind

def method1 (self):
   print "Guru99"
def method2 (self,someString): 
   print "Software Testing:" + someString
  • Hier haben wir Methode 1 definiert, die „Guru99“ ausgibt.
  • Eine weitere Methode, die wir definiert haben, ist Methode2, die „Software Testing“ + SomeString ausgibt. SomeString ist die von der aufrufenden Methode bereitgestellte Variable

Schritt 3) Alles in einer Klasse ist eingerückt, genau wie der Code in der Funktion, Schleife, if-Anweisung usw. Alles, was nicht eingerückt ist, ist nicht in der Klasse

Definierung Python Unterricht

HINWEIS: Über die Verwendung von „self“ in Python

  • Das Argument „self“ bezieht sich auf das Objekt selbst. Daher die Verwendung des Wortes „self“. Innerhalb dieser Methode bezieht sich „self“ also auf die spezifische Instanz dieses Objekts, an der gearbeitet wird.
  • Selbst ist der Name, der gemäß Konvention bevorzugt wird von Pythons zur Angabe des ersten Parameters von Instanzmethoden in Python. Es ist Teil der Python Syntax für den Zugriff auf Mitglieder von Objekten

Schritt 4) Ein Objekt der Klasse erstellen

c = myClass()

Schritt 5) Um eine Methode in einer Klasse aufzurufen

c.method1()
    c.method2(" Testing is fun")
  • Beachten Sie, dass wir beim Aufruf von method1 oder method2 das Schlüsselwort self nicht angeben müssen. Das erledigt automatisch der Python Laufzeit.
  • Python Die Laufzeit übergibt den Wert „self“, wenn Sie eine Instanzmethode in der Instanz aufrufen, unabhängig davon, ob Sie dies absichtlich angeben oder nicht.
  • Sie müssen sich nur um die Nicht-Selbst-Argumente kümmern

Schritt 6) Hier ist der vollständige Code

# 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()

Wie Vererbung funktioniert

Vererbung ist eine Funktion, die in der objektorientierten Programmierung verwendet wird. Es bezieht sich auf die Definition einer neuen Klasse mit geringeren oder keinen Änderungen an einer vorhandenen Klasse. Die neue Klasse wird aufgerufen abgeleitete Klasse und von einem, das es erbt, heißt das Base. Python unterstützt Vererbung; es unterstützt auch mehrere Erbschaften. Eine Klasse kann Attribute und Verhaltensmethoden von einer anderen Klasse erben, die als Unterklasse oder Erbklasse bezeichnet wird.

Definierung Python Unterricht

Python Vererbungssyntax

class DerivedClass(BaseClass):
    body_of_derived_class

Schritt 1) Führen Sie den folgenden Code aus

# 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()

Beachten Sie, dass method1 in childClass nicht definiert ist, sondern von der übergeordneten myClass abgeleitet ist. Die Ausgabe ist „Guru99“.

Schritt 2) Kommentieren Sie Zeile 8 und 10 aus. Führen Sie den Code aus

Jetzt ist die Methode 1 in der childClass definiert und die Ausgabe „childClass Method1“ wird korrekt angezeigt.

Schritt 3) Kommentieren Sie Zeile Nr. 9 aus. Führen Sie den Code aus

Mithilfe der Syntax können Sie eine Methode der übergeordneten Klasse aufrufen

ParentClassName.MethodName(self)

In unserem Fall rufen wir myClass.method1(self) auf und Guru99 wird wie erwartet gedruckt

Schritt 4) Kommentieren Sie Zeile Nr. 19 aus. Führen Sie den Code aus.

Methode 2 der untergeordneten Klasse wird aufgerufen und „childClass method2“ wird wie erwartet gedruckt.

Python Konstruktoren

Ein Konstruktor ist eine Klassenfunktion, die ein Objekt mit vordefinierten Werten instanziiert.

Es beginnt mit einem doppelten Unterstrich (_). Es ist die Methode __init__()

Im folgenden Beispiel übernehmen wir den Namen des Benutzers mithilfe des Konstruktors.

class User:
    name = ""

    def __init__(self, name):
        self.name = name

    def sayHello(self):
        print("Welcome to Guru99, " + self.name)

User1 = User("Alex")
User1.sayHello()

Ausgabe wird sein:

Willkommen bei Guru99, Alex

Python 2 Beispiel

Die obigen Codes sind Python 3 Beispiele, Wenn Sie in laufen wollen Python 2 Bitte beachten Sie den folgenden Code.

# 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()

Erfahren Sie in unserem nächsten Tutorial mehr darüber Polymorphismus in Python

Zusammenfassung

„Klasse“ ist eine logische Gruppierung von Funktionen und Daten. Python Die Klasse bietet alle Standardfunktionen der objektorientierten Programmierung.

  • Mechanismus zur Klassenvererbung
  • Eine abgeleitete Klasse, die jede Methode ihrer Basisklasse überschreibt
  • Eine Methode kann die Methode einer Basisklasse mit demselben Namen aufrufen
  • Python Klassen werden durch Schlüsselwörter definiert "Klasse" selbst
  • Innerhalb von Klassen können Sie Funktionen oder Methoden definieren, die Teil der Klasse sind
  • Alles in einer Klasse ist eingerückt, genau wie der Code in der Funktion, Schleife, if-Anweisung usw.
  • Das Selbstargument in Python bezieht sich auf das Objekt selbst. Selbst ist der Name, der von Konventionen bevorzugt wird Pythons zur Angabe des ersten Parameters von Instanzmethoden in Python
  • Python Die Laufzeit übergibt den Wert „self“ automatisch, wenn Sie eine Instanzmethode in der Instanz aufrufen, unabhängig davon, ob Sie ihn absichtlich angeben oder nicht.
  • In Python, eine Klasse kann Attribute und Verhaltensmethoden von einer anderen Klasse erben, die als Unterklasse oder Nachfolgerklasse bezeichnet wird.