Skip to main content

Woche 9 - Klassen

Bisher haben wir in dieser Vorlesung nur mit Datentypen gearbeitet, welche Python uns zur Verfügung gestellt hat. In dieser Woche besprechen wir, wie wir selber Datentypen definieren können. Ähnlich wie bei Funktionen, die wir benutzt haben um Sequenzen von Anweisungen zu abstrahieren, verwenden wir Klassen um zusammengehörige Daten zu einer grösseren Einheit zusammenzufassen.

Selbststudium

Bitte arbeiten Sie folgende Lerneinheiten vor der Präsenzvorlesung am 16. November durch.

Präsenzveranstaltung

In der Präsenzveranstaltung werden wir zeigen, wie wir die Mandelbrotmenge berechnen und visualisieren. Dabei nutzen wir Klassen, um komplexe Zahlen zu repräsentieren und die Berechnung der Mandelbrotmenge zu strukturieren. Wir werden sehen, dass dank Klassen, die Berechnungen sehr einfach und intuitiv ausgedrückt werden können.

Als Grundlage für die Präsenzveranstaltung werden wir das folgende Jupyter-Notebook verwenden:

Studierende von ausserhalb der Uni Basel können die Fallstudie in Google Colab bearbeiten (Link zum Notebook in Colab).

Übungen

Bearbeiten Sie die Übungen in folgendem Jupyter-Notebook:

  • Das Übungsblatt wird am 16. November an dieser Stelle zur Verfügung stehen.

Reichen Sie Ihre Antworten bis am 22. November auf Adam ein. Sie können Ihre Antworten vorher mit unserem automatisierten Korrekturtool testen.

Kernaussagen

  • Datentypen definieren eine Menge von Werten und Operationen die auf diesen Werten arbeiten.
  • Mittel Klassen können wir eigene Datenabstraktionen definieren, welche zusammengehörige Daten zusammenfassen
  • Der Vorteil von Klassen gegenüber Tupeln ist, dass wir den einzelnen Feldern sinnvolle Namen geben können
  • Mittels Methoden können wir Operationen auf den Werten definieren

Lernziele

Die Studierenden

  • kennen die Eigenschaften eines Datentyps
  • können Daten mittels Klassen strukturieren und eigene Instanzen der Klasse erstellen
  • kennen den Unterschied zwischen einer Klasse (dem Datentyp) und den Instanzen (den Objekten)
  • kennen die Regeln die Python anwendet um Gleichheit von Objekten zu prüfen
  • können eigene Methoden für eine Klasse definieren