Python TagebuchPython lernen – mein persönliches Tagebuch

Tagebuch-Eintrag #32
Klassen in Python – Grundlagen

So, jetzt bin ich bei Klassen in Python. Objektorientierung ist für den Anfang nicht so einfach zu verstehen für mich.
Werbung/Anzeige

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.

Der Weg zu self in Klassen.
Der Weg zu self

Die Ausgabe meines obigen Codes sieht dazu so aus:

Rechts: Ausgabe Employee-Klasse
Rechts: Ausgabe Employee-Klasse

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 😀

Zwei Funktionen in einer Python-Klasse - Code und Ausgabe
Zwei Funktionen in einer Klasse – Code und Ausgabe

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.

# # ## ENDE Tagebuch-Eintrag #32 | Klassen in Python – Grundlagen
Werbung/Anzeige
Schlagwörter im Tagebuch-Eintrag:

Kommentar schreiben




Werbung/Anzeige