Abstecher objektorientiertes programmieren in Python

Inspiriert durch das Kapitel objektorientiertes Programmieren in Python, habe ich es gewagt, einen Abstecher in diese Richtung zu machen.

Vorweg: Es ist nicht ganz einfach. 🙂 Für mich -als nicht programmierer- ist einiges nicht „einfach mal so“ nachvollziehbar.

Grundlagen

In der oo-P (objektorientierten Programmierung) gibt es Klassen und Methoden und Attribute. Das ist zumindest das, was ich bislang „gelernt“ habe.

Nehmen wir folgendes Beispiel:

class artikel: # Es wird die Klasse artikel definiert
    def __init__(self):
        self.lagerstand = 0 # Diese Klasse bekommt das Attribut lagerstand = 0

    def erfassen (self, menge): # Es wird die Methode "erfassen" definiert
        self.lagerstand = self.lagerstand + menge

    def verkaufen(self, menge): # Es wird die Methode "verkaufen" definiert
        self.lagerstand = self.lagerstand - menge
        print 'Lagerstand: ', self.lagerstand

notebook = artikel() # Erzeugt eine sog. Instanz der Klasse artikel
desktop = artikel () # Erzeugt eine weitere sog. Instanz der Klasse artikel

Somit haben wir nun also die Klasse artikel. In der Klasse artikel, sind die Methoden erfassen und verkaufen definiert. wobei diese Methoden genau eine Variable entgegen nehmen, nämlich die menge der verkauften bzw. der eingekauften Artikel.

Starten wir nun das Programm und geben in der Python Shell folgendes ein:

notebook.erfassen(5)

nimmt die Instanz notebook der Klasse Artikel als den Wert 5 als Variable menge entgegen und rechnet dann lt. Programm self.lagerstand = self.lagerstand + menge aus.

Da Lagerstand = 0 haben wir dann also den lagerstand 5.

Die Eingabe von

notebook.lagerstand

in der Python-Shell ruft die Variable lagerstand der Klasseninstanz notebook auf. Diese sollte jetzt auf 5 stehen.

desktop.lagerstand ist noch bei null, da wir ja mit der Instanz notebook gearbeitet haben.

Soweit, so gut… jetzt heißt es üben üben üben und vor allem verstehen 🙂

 

 

 

Schreibe einen Kommentar

* Zustimmung zur Datenspeicherung lt. DSGVO

*

Ich bin damit einverstanden