no way to compare when less than two revisions
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| — | de:modul:m319:learningunits:lu12:klasse [2025/06/23 07:45] (aktuell) – ↷ Seite von modul:m319:learningunits:lu12:klasse nach de:modul:m319:learningunits:lu12:klasse verschoben msuter | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== LU12b - Klassen definieren ====== | ||
| + | <WRAP center round info 60%> | ||
| + | Eine Klasse ist ein Bauplan, der den Aufbau von Objekten definiert. | ||
| + | </ | ||
| + | ===== 1 Klasse - 1 Datei ===== | ||
| + | Es bietet sich an, für jede Klasse eine eigene Python-Datei zu erstellen. | ||
| + | Für die Klasse '' | ||
| + | Unsere Datei '' | ||
| + | <file python member.py> | ||
| + | from dataclasses import dataclass | ||
| + | |||
| + | |||
| + | @dataclass | ||
| + | class Member: | ||
| + | """ | ||
| + | a club member | ||
| + | """ | ||
| + | firstname: str | ||
| + | lastname: str | ||
| + | address: str | ||
| + | place: str | ||
| + | zip_code: str | ||
| + | entry_year: int | ||
| + | birth_year: int | ||
| + | honorary_member: | ||
| + | attended_meetings: | ||
| + | |||
| + | if __name__ == ' | ||
| + | test_person = Member(' | ||
| + | test_person.firstname = ' | ||
| + | print(test_person) | ||
| + | </ | ||
| + | |||
| + | <WRAP center round info 60%> | ||
| + | Diese Definition einer Klasse ist wie ein Bauplan für Clubmitglieder. | ||
| + | Der Bauplan definiert, aus welchen Bestandteilen ein Clubmitglied besteht. | ||
| + | |||
| + | Schauen wir uns den Code Stück für Stück an: | ||
| + | </ | ||
| + | |||
| + | ===== dataclass ===== | ||
| + | <code python> | ||
| + | from dataclasses import dataclass | ||
| + | |||
| + | |||
| + | @dataclass | ||
| + | class Member: | ||
| + | """ | ||
| + | a club member | ||
| + | """ | ||
| + | | ||
| + | ... | ||
| + | </ | ||
| + | <WRAP center round info 60%> | ||
| + | **dataclass** ist ein Pythonmodul für die Definition von Klassen, die hauptsächlich Daten verwalten sollen. | ||
| + | </ | ||
| + | Der **Decorator** '' | ||
| + | Diese Annotation muss direkt vor dem '' | ||
| + | |||
| + | Um eine Klasse zu definieren, verwenden wir den Befehl '' | ||
| + | Beachten Sie die [[https:// | ||
| + | |||
| + | Ein kurzer Kommentarblock zwischen dreifachen Anführungszeichen (''"'' | ||
| + | |||
| + | ===== Attribute ===== | ||
| + | <code python> | ||
| + | ... | ||
| + | |||
| + | class Member: | ||
| + | ... | ||
| + | | ||
| + | firstname: str | ||
| + | lastname: str | ||
| + | address: str | ||
| + | place: str | ||
| + | zip_code: str | ||
| + | entry_year: int | ||
| + | birth_year: int | ||
| + | honorary_member: | ||
| + | attended_meetings: | ||
| + | |||
| + | ... | ||
| + | </ | ||
| + | |||
| + | <WRAP center round info 60%> | ||
| + | Attribute sind Variablen die im Kontext einer Klasse definiert werden. | ||
| + | Diese Attribute sind in allen Funktionen innerhalb der Klasse verfügbar. | ||
| + | </ | ||
| + | |||
| + | Nach dem '' | ||
| + | |||
| + | |||
| + | ===== __main__ ? ===== | ||
| + | <code python> | ||
| + | ... | ||
| + | if __name__ == ' | ||
| + | test_person = test_person = Member(' | ||
| + | test_person.firstname = ' | ||
| + | print(test_person) | ||
| + | </ | ||
| + | |||
| + | <WRAP center round info 60%> | ||
| + | Eine Datenklasse ist nicht dafür gemacht, direkt ausgeführt zu werden. | ||
| + | Zu Testzwecken können wir ein paar Objekte erstellen und ausgeben. | ||
| + | </ | ||
| + | |||
| + | Klassen sind keine eigenständigen Pythonskripts, | ||
| + | Wir können aber zu Testzwecken eine Klasse direkt aufrufen. | ||
| + | In diesem Codeblock erstellen wir ein Objekt, setzen das Attribut '' | ||
| + | |||
| + | |||
| + | ---- | ||
| + | {{tag> | ||
| + | [[https:// | ||