Skip to content

Die Klasse

Objektorientiertes Programmieren

Am Besten definiert man eine eigene Klasse in einer separaten Datei. Meist benennt man diese gleich wie die Klasse, einfach klein-geschrieben, also z.B. sheep.py.

Die einfachste Python-Klasse sieht wie folgt aus:

python
class Sheep:
	pass

Die Klasse wird mit dem Schlüsselwort class definiert. Sie hat einen Namen (hier Sheep). Klassennamen schreibt man zur Unterscheidung von Variablen gross.

Aufgabe: Klasse

Erstelle eine Datei sheep.py und speichere den obenstehenden Inhalt ab.

Unsere Klasse Sheep hat weder Eigenschaften noch Methoden. Ihr einziger Inhalt besteht in der Anweisung pass, die nichts tut, sondern da sein muss, weil Python keine wirklich leeren Klassen zulässt.

Nichtsdestotrotz können wir die Klasse verwenden. Dazu müssen wir diese importieren. Wir nehmen an die Klasse Sheep sei in der Datei sheep.py im selben Verzeichnis wie untenstehendes Testprogramm main.py abgespeichert. So können wir diese importieren und verwenden:

python
from sheep import Sheep

shaun = Sheep()
timmy = Sheep()
python
class Sheep:
	pass
Zeilen 3 & 4
wir erzeugen ein neues Objekt der Klasse Sheep

Eigenschaften

Mit der Punktnotation können wir nun auf die Eigenschaften der Objekte zugreifen: wir können dafür Werte setzen und vorhandene Werte auslesen

python
from sheep import Sheep

shaun = Sheep()
timmy = Sheep()

shaun.age = 17
timmy.age = 3

diff = shaun.age - timmy.age
print("Shaun ist", diff, "Jahr älter als Timmy")
python
class Sheep:
	pass

Hinweis: Punktnotation

Methoden und Eigenschaften eines Objektes rufen wir mit der Punktnotation auf!

Methoden

Methoden werden wie Funktionen/Unterprogramme definiert – allerdings in der Klasse drin. Somit gehören Methoden zum aus der Klasse erzeugten Objekt und haben auch Zugriff auf die Eigenschaften des Objektes.

python
class Sheep:

    def eat(self):
        print("mampf")
python
from sheep import Sheep

shirley = Sheep()

shirley.eat()
Zeilen 3 & 4
wir definieren die Methode eat
momentan steht darin nur ein print

Hinweis: self

  • self ist bei Methoden immer das erste Argument.
  • Beim Aufruf der Methode entspricht self dem aktuellen Objekt.

Im obigen Beispiel kann also die Methode eat(), wenn aufgerufen als shirley.eat() mittels self auf shirley zugreifen!

Methoden und Eigenschaften

Spannend wird es, wenn die Methoden auf Eigenschaften des Objektes zugreifen oder diese gar ändern.

python
class Sheep:

    def eat(self):
        print("mampf")
        self.hunger = False
        self.gewicht = self.gewicht + 1

    def befinden(self):
        print("  gewicht:", self.gewicht)
        print("   hunger:", self.hunger)
python
from sheep import Sheep

shirley = Sheep()

shirley.gewicht = 172
shirley.hunger = True

shirley.befinden()
shirley.eat()
shirley.befinden()

Aufgabe: Methoden

  1. Übernimm das obenstehende Beispiel und teste es
  2. Bau eine weitere Methode sleep ein. Diese soll ein Schlafgeräusch ausgeben und danach ist der Hunger wieder da
  3. rufe die Methode auf

Warnung: Eigenschaften ohne Werte

Methoden, welche auf Eigenschaften zugreifen, können dies erst tun, wenn diese Eigenschaften entsprechende Werte haben.

Zusatzaufgabe: Streich spielen

Bau eine Methode prank ein. Dabei soll ein vom Schaf abhängiger Text ausgegeben werden (nicht jedes Schaf macht denselben Streich).
Das Schaf wird dabei etwas leichter.

Gymnasium Kirchenfeld, fts & lem