Kurs
Ein objektorientierter Ansatz ist besonders hilfreich, wenn dein Code komplexe Wechselwirkungen vieler Objekte umfasst. In echter Produktivsoftware können Klassen Dutzende Attribute und Methoden mit komplexer Logik haben – die zugrunde liegende Struktur ist jedoch dieselbe wie bei der einfachsten Klasse.
Klassen sind wie ein Bauplan für Objekte: Sie skizzieren mögliche Verhaltensweisen und Zustände, die jedes Objekt eines bestimmten Typs haben kann. Wenn du zum Beispiel sagst: "Jeder Kunde hat eine Telefonnummer und eine E-Mail-Adresse und kann Bestellungen aufgeben und stornieren", hast du gerade eine Klasse definiert! So kannst du einheitlich über Kundinnen und Kunden sprechen. Ein konkretes Customer-Objekt ist dann einfach die Realisierung dieser Klasse mit einem bestimmten Zustandswert.

Python-Klassen finden
In Python ist alles ein Objekt. Zahlen, Strings, DataFrames – sogar Funktionen sind Objekte. Konkret hat alles, womit du in Python arbeitest, eine Klasse, also einen Bauplan, der unter der Haube hinterlegt ist. Diese einheitlichen Schnittstellen sind der Grund, warum du beispielsweise jeden DataFrame auf die gleiche Weise verwenden kannst.
Mit type() kannst du für jedes Python-Objekt dessen Klasse herausfinden. Die Klasse eines numpy-Arrays heißt zum Beispiel tatsächlich ndarray (für n-dimensionales Array).
import numpy as np
a = np.array([1,2,3,4])
print(type(a))
numpy.ndarray
Klassen vereinen Informationen über Zustand und Verhalten. Zustandsinformationen stecken in Python in Attributen, Verhaltensinformationen in Methoden.
Attribute und Methoden
Nimm ein numpy-Array: Einige seiner Methoden und Attribute hast du bereits verwendet!
Zum Beispiel hat jedes numpy-Array ein Attribut „shape“, auf das du mit dem Namen des Arrays gefolgt von einem Punkt und shape zugreifst.
Zustand <--> Attribute
import numpy as np
a = np.array([1,2,3,4])
# shape-Attribut
a.shape
(4,)
Es gibt auch Methoden wie max und reshape, auf die du ebenfalls per Punkt zugreifen kannst.
Verhalten <--> Methoden
import numpy as np
a = np.array([1,2,3,4])
# reshape-Methode
a.reshape(2,2)
array([[1, 2],
[3, 4]])
Deine erste Klasse erstellen
In diesem Beispiel erstellst du eine leere Klasse Employee. Anschließend erzeugst du mit Employee() ein Objekt emp der Klasse Employee.
Versuche, das Attribut .name des Objekts emp in der Konsole auszugeben. Was passiert?
# Leere Klasse Employee erstellen
class Employee:
pass
# Objekt emp der Klasse Employee erstellen
emp = Employee()
Wenn du mehr über objektorientierte Programmierung in Python lernen möchtest, sieh dir dieses Video aus unserem Kurs Object-Oriented Programming in Python an.
Dieser Inhalt stammt aus dem DataCamp-Kurs Object-Oriented Programming in Python von Aliaksandra Yarosh.
Schau dir auch DataCamps Python Object-Oriented Programming (OOP) Tutorial an.