Tagebuch-Eintrag #32
Klassen in Python – Grundlagen
Ich hatte schon vor ca. einen Monat vorgehabt das Thema Klassen in Python anzugehen. Aus verschiedensten Gründe musste ich es immer wieder nach hinten schieben.
Aber nun habe ich Zeit gefunden mich mit Klassen in Python auseinander zu setzen.
Es ist das Eingangstor (kann man das so schreiben? ;)) in die Objektorientierung in Python. Überhaupt ist alles in Python ein Objekt, habe ich zumindest irgendwo mal gelesen.
Was sind Klassen in Python?
Ich habe einiges über Klassen gelesen und um es mit einfachen Worten und nach meinem Verständnis auszudrücken, werden damit Objekte mit verschiedenen, bestimmten und vordefinierten Attributen (Eigenschaften) erstellt.
Im Grunde genommen ist ein Mensch ein Objekt mit verschiedenen Eigenschaften, die mindestens jeder Mensch hat. Also zum Beispiel Vorname, Nachname, Körpergröße, Augenfarbe, Schuhgröße etc.
Diese Attribute/Eigenschaften können beliebig mit Informationen gefüllt werden.
Klasse erstellen
Ich habe Tutorials mehrmals anschaut und gelesen um das zu verstehen. Es ist auf dem Ersten Blick für mich nicht einfach zu verstehen gewesen, wie Klassen erstellt werden. Aber nach und nach und insbesondere durch aktive Code schreiben, habe ich die Grundlagen dazu glaube ich verstanden. Als Übung habe ich Arbeitnehmer-Klasse erstellt.
# Klasse Arbeitnehmer erstellen
class Employee:
def name(self):
print(self.firstname, self.lastname + ":", self.function)
michael = Employee()
michael.firstname = "Michael"
michael.lastname = "Mustermann"
michael.function = "Kundenbetreuer"
michael.name()
anna = Employee()
anna.firstname = "Anna"
anna.lastname = "Musterfrau"
anna.function = "Buchhaltung"
anna.name()
Anfangs hatte ich Schwierigkeiten self in Klammern und Ausgabe zu verstehen was es macht. Mittlerweile habe ich das aber denke ich verstanden 😉
self wird durch die Objektnamen (im Obigen Beispiel michael und anna) ersetzt. Um es visuell besser sichtbar zu machen, habe ich eine Grafik erstellt.

Die Ausgabe meines obigen Codes sieht dazu so aus:

Zur weiteren Übung mit Klassen in Python, habe ich einfach noch eine Firma erstellt.
class Company:
def name(self):
print("Firma", self.company_name, "in", self.company_location)
office = Company()
office.company_name = "Frische Minze"
office.company_location = "World Wide Web"
office.name()
Und auch wenn in der Klasse Company die Funktion mit der Bezeichnung name hat, wie bei meiner Klasse Employee, kommt es zu keiner Fehlermeldung, wenn diese Funktion in unterschiedlichen Klassen erstellt werden. So kann der Code auch in einem Programm sein.
class Employee:
def name(self):
print(self.firstname, self.lastname + ":", self.function)
class Company:
def name(self):
print("Firma", self.company_name, "in", self.company_location)
michael = Employee()
michael.firstname = "Michael"
michael.lastname = "Mustermann"
michael.function = "Kundenbetreuer"
michael.name()
anna = Employee()
anna.firstname = "Anna"
anna.lastname = "Musterfrau"
anna.function = "Buchhaltung"
anna.name()
office = Company()
office.company_name = "Frische Minze"
office.company_location = "World Wide Web"
office.name()
Als nächstes habe ich mir gedacht, dass ich anstatt zwei Klassen erstelle. Wieso erstelle ich nicht eine Klasse mit den beiden Funktionen für die Ausgabe von Arbeiter und Unternehmen? Ob das funktioniert?
class Work:
def company(self): #Ausgabe der Firma + Attributen
print("Firma", self.company_name, "in", self.company_location)
def name(self): #Ausgabe der Mitarbeitern + Attributen
print(self.firstname, self.lastname + ":", self.function)
# Mitarbeiter mit den Attributen erstellen
michael = Work()
michael.firstname = "Michael"
michael.lastname = "Mustermann"
michael.function = "Kundenbetreuer"
michael.name()
anna = Work()
anna.firstname = "Anna"
anna.lastname = "Musterfrau"
anna.function = "Buchhaltung"
anna.name()
# Firma mit den Attributen erstellen
office = Work()
office.company_name = "Frische Minze"
office.company_location = "World Wide Web"
office.company()
Also erstellte ich eine Klasse Work mit den Funktionen company und name. Erstere für die Ausgabe der Firma und letztere für den Mitarbeiter. Und es funktioniert sogar – wie erhofft 😀

Nun habe ich die Grundlagen für Klassen in Python abgearbeitet. Hat auch lange genug gedauert. Ich bin mit der Theorie schon etwas weiter und die Klassen können noch etwas mehr.
Bleibt dran, bald gibt es hoffentlich den nächsten Tagebuch-Eintrag.