Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
talit:tutorial_oop3 [2025-04-26 20:13] hoftalit:tutorial_oop3 [2025-04-26 20:29] (aktuell) – [Klassen und Objekte] hof
Zeile 65: Zeile 65:
 unit.print_stats() unit.print_stats()
 </code> </code>
- 
 ## Klassen und Objekte ## Klassen und Objekte
 Genau das erreichen wir mit der **objekt-orientierten Programmierung**. Du hast bereits sehr oft Objekte benutzt, zum Beispiel Strings oder Listen. Ein Objekt gruppiert Attribute (en. _attributes_) und Methoden (Funktionen, die zum Objekt gehören). Alle Objekte einer _Klasse_ haben die gleichen Methoden und die gleichen Attribut-Namen, aber möglicherweise unterschiedliche Inhalte in den Attributen. Genau das erreichen wir mit der **objekt-orientierten Programmierung**. Du hast bereits sehr oft Objekte benutzt, zum Beispiel Strings oder Listen. Ein Objekt gruppiert Attribute (en. _attributes_) und Methoden (Funktionen, die zum Objekt gehören). Alle Objekte einer _Klasse_ haben die gleichen Methoden und die gleichen Attribut-Namen, aber möglicherweise unterschiedliche Inhalte in den Attributen.
Zeile 80: Zeile 79:
     def __init__(self, word1, word2):     def __init__(self, word1, word2):
         """Creates a new pair from two strings."""         """Creates a new pair from two strings."""
-        self.word1 = word1 +        self.word1 = word1   # All objects of class WordPair share the same attributes 
-        self.word2 = word2+        self.word2 = word2   # but not necessarily the same contents.
          
-    def reverse(self): +    def reversed(self):       # All objects of class WordPair share the same methods 
-        """Creates the reverse translation."""+        """Returns a copy of the pair in the reverse direction."""
         return WordPair(self.word2, self.word1)         return WordPair(self.word2, self.word1)
  
 tree = WordPair('Baum', 'tree' # we are passing only two arguments, the self argument is implicit. tree = WordPair('Baum', 'tree' # we are passing only two arguments, the self argument is implicit.
-flower = WordPair('Blume', 'flower')+ 
 +print(f'{tree.word1} translates to {tree.word2}' # Attributes can be accessed using dot-notation. 
 </code> </code>
 +
 +### Aufgabe A
 +  * Erstelle ein neues github-Repository `ksr_talit_vocabulary` und clone es lokal in VS Code.
 +  * Teile es mit `tkilla77` und `anschae`.
 +  * Füge das `.gitignore` für Python hinzu (von [[https://github.com/github/gitignore/blob/main/Python.gitignore|hier]]).
 +
 +Erstelle eine neue Python-Datei `voci.py` und erstelle deine erste Klasse `WordPair` wie oben und zeige sie der Lehrperson. Achte auf:
 +  * Coding-Conventions:
 +    * Klassennamen in CamelCase
 +    * Methoden und Attribute in lower_case_with_underscores()
 +  * Dokumentation mit `"""doc strings"""`
 +
 +Wir möchten zusätzlich eine Klasse `VocabularyUnit` haben, die eine Liste von `WordPairs` speichert.
 +
 +Als drittes benötigen wir eine Klasse `ConsoleLearner` mit einer Methode `learn(unit)`, die alle WortPaare abfragt.
 +  * um das Terminal zu leeren kannst du `print("\033c", end="")` benützen
 +  * um die Zeile im Terminal zu löschen, verwendest du `print("\033[H\033[J", end="")`
 +  * mehr dazu auf [[wp>ANSI_escape_code]]
 +
 +
  • talit/tutorial_oop3.1745698417.txt.gz
  • Zuletzt geändert: 2025-04-26 20:13
  • von hof