Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
modul:m320_2024:learningunits:lu09:mehrfachbeziehung [2024/09/23 08:59] – [Löschen einer Beziehung (**remove**)] msuter | modul:m320_2024:learningunits:lu09:mehrfachbeziehung [2024/09/23 09:11] (aktuell) – msuter | ||
---|---|---|---|
Zeile 10: | Zeile 10: | ||
//Abb: 1:n Beziehung// | //Abb: 1:n Beziehung// | ||
- | {{: | ||
- | |||
- | //Abb: n:n Beziehung// | ||
=== Kardinalität === | === Kardinalität === | ||
Zeile 26: | Zeile 23: | ||
Der Stern steht für **0 bis unendliche viele** Beziehungen. | Der Stern steht für **0 bis unendliche viele** Beziehungen. | ||
In der UML ist es aber auch möglich, die Kardinalität ganz genau zu spezifizieren. | In der UML ist es aber auch möglich, die Kardinalität ganz genau zu spezifizieren. | ||
- | So ist in der Abbildung | + | So ist in der Abbildung klar erkennbar, dass eine Schulklasse mindesten 15 aber maximal 24 Studenten haben kann. |
===== Umsetzung in Python ===== | ===== Umsetzung in Python ===== | ||
Zeile 42: | Zeile 39: | ||
def __init__(self, | def __init__(self, | ||
| | ||
- | | + | |
| | ||
def add_student(a_student): | def add_student(a_student): | ||
Zeile 77: | Zeile 74: | ||
<code python> | <code python> | ||
- | def take_student(self, | + | def take_student(self, |
if index is not None: # Index wurde angegeben | if index is not None: # Index wurde angegeben | ||
if index < len(self._students): | if index < len(self._students): | ||
Zeile 85: | Zeile 82: | ||
else: # kein Index angegeben, wir suchen nach dem Namen | else: # kein Index angegeben, wir suchen nach dem Namen | ||
for student in self._students: | for student in self._students: | ||
- | if student.name == name: | + | if student.name == key: |
return student | return student | ||
return None | return None | ||
Zeile 111: | Zeile 108: | ||
<WRAP center round tip 60%> | <WRAP center round tip 60%> | ||
- | Je nach Entwurf der Applikation können die **take**- und **remove**-Methoden nur einen der Parameter '' | + | Je nach Entwurf der Applikation können die **take**- und **remove**-Methoden |
</ | </ | ||