Python ist eine objektorientierte Programmiersprache auf hohem Niveau. Objektorientiert bedeutet, dass Objekte die grundlegenden Bausteine sind. Eine Eigenschaft ist ein Attribut eines Objekts. Eine Methode ist eine Funktion, die mit einem Objekt verbunden ist. Eine Klasse ist wie ein Objektkonstruktor oder eine „Blaupause“ für die Erstellung von Objekten. Sowohl Eigenschaften als auch Methoden werden als „Attribute“ bezeichnet. Dieser Artikel wird Ihnen helfen, Klassen und Objekte in Python zu verstehen.

Auch wenn all dies verwirrend erscheinen mag, sind dies einige der grundlegenden Begriffe, die man kennen muss, bevor man mit der Programmierung in Python beginnt. Das Erlernen der Programmiersprache Python ist zwar eine Herausforderung, aber es lohnt sich, Python zu lernen, weil es so einfach zu erstellen und zu lesen ist. Python ähnelt anderen Sprachen insofern, als dass man viele verschiedene Variablen verwenden muss, um verschiedene Aktionen auszuführen, aber Python funktioniert schneller als andere Sprachen. Diese Klassen haben Eigenschaften und Methoden, und die Methoden haben Attribute. Es ist so ähnlich wie bei einem Backrezept – man hat eine Liste von Zutaten, die Schritte zur Erstellung des Objekts und das Ergebnis der Erstellung des Objekts. In diesem Artikel werden wir Ihnen zeigen, was diese Dinge sind, wie sie funktionieren und einige Beispiele dafür geben. 

Klassen

Eine Klasse ist eine Basis, auf der eine Methode ausgeführt wird; sie ist der Bauplan eines Objekts. Sie ist ein benutzerdefinierter Datentyp, mit dem man mehrere Objekte erstellen kann, die ähnliche Datenattribute und Methoden enthalten. Diese Objekte können dann zur Erstellung von Instanzen verwendet werden. Eine Instanz ist ein Objekt, das aus einer Klasse erzeugt wird. Eine Klasse kann Variablen, Konstanten und andere Methoden enthalten, die von dem Klassenobjekt ausgeführt werden können. Wenn Sie mit C++, Java oder PHP vertraut sind, ist eine Klasse den Strukturen nicht unähnlich. Ein grundlegendes Beispiel für eine Klasse ist unten dargestellt:

class MyClass:
  name = 'python'
  x = 5

Die class-Anweisung erstellt eine neue Klassendefinition. Der Name der Klasse folgt unmittelbar auf das Schlüsselwort class, gefolgt von einem Doppelpunkt (siehe Abbildung).

Objekte

Objekte sind alles, was einen bestimmten Zustand festhält und Ihnen Prozeduren für dessen Bearbeitung bietet. Es besteht eine gute Chance, dass Sie Objekte zumindest implizit schon benutzt haben, da sich viele eingebaute Typen in Python wie Objekte verhalten (z.B. Integer, Strings, Listen). Vielleicht haben Sie auch schon ab und zu das Wort „Schnittstelle“ gehört, vielleicht mit einer abwertenden Konnotation, vielleicht auch nicht. Im Moment müssen Sie nur wissen, dass es sich auch hier um Objekte handelt. 

Wir können die Klasse MyClass verwenden, um ein Objekt namens p1 zu erstellen und den Wert von x zu drucken:

p1 = MyClass()
print(p1.x) 

Attribute und Methoden in Python:

Eine Klasse allein ist nicht von Nutzen. Eine Klasse ist eine Sammlung von zusammenhängendem Code, der Attribute genannt wird. Die Art und Weise, wie Sie mit einer Klasse und ihren Attributen arbeiten, besteht in der Definition einer Reihe von Operationen, die als Funktionen bezeichnet werden und mit bestimmten, in den Attributen enthaltenen Werten verbunden sind. Klassen bieten lediglich eine Struktur und eine abstrahierte Form der Datenspeicherung.

Sie können zum Beispiel eine Klasse mit dem Namen MyClass definieren und eine Variable namens name hinzufügen, die Sie mit einer Zeichenkette füllen, wie in der Abbildung gezeigt:

class MyClass:
    name = "python"

Klassenattribute sind Variablen einer Klasse, die von allen ihren Instanzen gemeinsam genutzt werden. Dies wird als Objektinstanziierung bezeichnet. Sie können dann auf die Attribute (Variablen) zugreifen, die innerhalb der Klasse vorhanden sind, indem Sie den Punkt „.“ Operator verwenden. Im obigen Beispiel MyClass können Sie zum Beispiel auf das Attribut name der Klasse MyClass zugreifen.

MyClass = MyClass()

print(MyClass.name)
python

Wenn ein Attribut (eine Variable) mit einer Instanz einer Klasse verknüpft werden soll, müssen Sie eine Funktion innerhalb Ihrer Klasse definieren, die auf dieses Attribut zugreift, um verschiedene Funktionen auszuführen. Diese Funktionen werden als Methoden bezeichnet, und wenn Sie sie definieren, sollten Sie im Allgemeinen das erste Argument mit dem Schlüsselwort self versehen, da es sich dabei um einen speziellen Typ der lokalen Variablen handelt, die verwendet wird, um innerhalb der jeweiligen Methode auf sich selbst zu verweisen.

Sie können zum Beispiel eine Klasse MyClass definieren, die ein Attribut name und eine Methode change_name hat. Die Methode change_name nimmt ein Argument new_name zusammen mit dem Schlüsselwort self auf.

class MyClass:
    name = "python"
def change_name(self, new_name):
    self.name = new_name

Jetzt können Sie diese Klasse MyClass mit einer Variablen MyClass instanziieren und dann den Namen mit der Methode change_name ändern.

MyClass = MyClass()

print(MyClass.name)
python

MyClass.change_name("anaconda")
print(MyClass.name)
anaconda

Erweiterte objektorientierte Funktionen

Python zeichnet sich dadurch aus, dass es eine der wichtigsten Sprachen ist, mit der man OOP erstellen kann. Mit Python lässt sich das Verhalten von Objekten effizient ändern. So kann man beispielsweise Attribute und Methoden auf neue lokale Variablen umleiten und Klassen bei Bedarf anderweitig ändern. Natürlich sollte man mit den Konzepten der OO-Programmierung gut vertraut sein, bevor man dies versucht. Auch einige der professionelleren Funktionen von Python, wie die Erstellung von Hilfsklassen innerhalb von Funktionen und die Möglichkeit, dass Klasseninstanzen zur Laufzeit andere Instanzen erstellen, eignen sich am besten für sehr fortgeschrittene Anwendungen der beliebten Sprache.

Mehrfache Vererbung

Mehrfachvererbungen ermöglichen es abgeleiteten Klassen, die Eigenschaften von mehr als einer Basisklasse zu erben. Die abgeleitete Klasse wird als mehrfach abgeleitete Klasse bezeichnet. Dies kann auch als ein Fall von Mehrfachvererbung bezeichnet werden. Die abgeleitete Klasse ist verpflichtet, die Eigenschaften aller Basisklassen zu erben.

Ein Beispiel hierfür wäre:

class Car:
    def go(self):
        print('Going')


class Flyable:
    def fly(self):
        print('Flying')

class FlyingCar(Flyable, Car):
    pass

Hier habe ich die Klassen Car und Flyable definiert, die jeweils die Methoden go() und Fly() haben. Dann gibt es eine Klasse FlyingCar, die von den beiden Klassen Car und Flyable erbt; sie verwendet die Methoden dieser Klassen wieder. Das bedeutet, dass man die go()- und fly()-Methoden zusammen auf einer Instanz von FlyingCar aufrufen kann.

Zum Beispiel so:

if __name__ == '__main__':
    fc = FlyingCar()
    fc.go()
    fc.fly()

Letzte Worte

In diesem Artikel haben wir verschiedene Arten von OOP-Konzepten, Klassen und Objekten in Python im Detail mit Beispielen besprochen. Wir haben auch versucht, einige grundlegende Fragen zu beantworten: Was ist OOP in Python? Was sind die verschiedenen Arten von OOP-Konzepten in Python? Wenn Sie noch Fragen haben, können Sie diese gerne stellen, wir helfen Ihnen gerne weiter. 

Voici quelques tutoriels utiles que vous pouvez lire :