====== 4 Sequenzdiagramm ====== Das Sequenzdiagramm zeigt die Interaktion von Objekten im zeitlichen Ablauf auf. Es sind somit mindesten 2 Objekte beteiligt. ====UML-Notation==== {{:modul:m320:merkblaetter:lu03-merkblatt4.png?600|}} ==== (1) Instanziierung eines Objektes ==== class A: # Klasse A erzeugt selber ein Objekt der Klasse B. def __init__(self): # Erzeugung des Objektes vom Typ B im Konstruktor von A self._anObject = B() pass ==== (2) Selbstaufruf einer Methode mit Wertrückgabe ==== class A: # Klasse A ruft eine eigene Methode – hier mit einem Rückgabewert – auf @property def value(self): return self._value def doSomething(self): ..... v = self.value pass ==== (3) Aufruf einer Methode in einer anderen Klasse==== class A: class B: # A ruft eine Methode der Klasse B auf. # B stellt eine Methode bereit def doSomething(self): def doIt(self): ..... pass self._anObject.doIt() ==== (4) Aufruf einer Methode mit Wertrückgabe ==== class A: class B: # A ruft Methode von B auf, # B stellt eine Methode bereit # die einen Wert liefert.e @property def doSomething(self): def text(self): ..... return aText txt = self._anObject.text pass ==== Objektzerstörung ==== Nicht mehr benutzte Objekte müssen aus dem Speicher entfernt werden, damit der belegte Speicherplatz wieder freigegeben werden kann.\\ Python führt eine ''garbage collection''. Diese ist besorgt, dass nicht mehr benutze Objekte aus dem Speicher entfernt werden. class A: class B: .... # Destruktor definieren. Hier kann die Klasse # ordentlich beendet werden. del(self._anObject) def __del__(self): pass pass ---- [[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] (c) René Probst