Einstieg - Verwaltung von Bankkonten
Zuweisungen an Variablen
Wir betrachten weiterhin Objekte der Klasse Konto
mit folgender Klassendeklaration.
class Konto(object):
def __init__(self, nummer):
self.nr = nummer
self.stand = 0.0
self.inhaber = None
def einzahlen(self, betrag):
self.stand = self.stand + betrag
def auszahlen(self, betrag):
self.stand = self.stand - betrag
Ziel der folgenden Betrachtungen ist es, die Verwaltung von Konto
-Objekten
mit Hilfe von Variablen genauer zu untersuchen.
Aufgabe 1
(a) Stell Vermutungen auf, was anstelle der drei Fragezeichen jeweils steht. Teste, ob deine Vermutungen stimmen.
>>> k1 = Konto(6)
>>> k2 = k1
>>> k1.stand
???
>>> k2.stand
???
>>> k2.einzahlen(100.0)
>>> k1.stand
???
>>> k2.stand
???
>>> k2 = Konto(7)
>>> k1.stand
???
>>> k2.stand
???
>>>
(b) Kannst du dir die Ergebnisse erklären?
Objekte und ihre Identität
Die folgenden Experimente dienen dazu, das (manchmal merkwürdige) Verhalten von Objekten zu verstehen.
Aufgabe 2
(a) Mit dem id
-Operator kann man sich die sogenannte Identitätsnummer eines Objekts anzeigen lassen.
>>> k1 = Konto(3)
>>> k1
<__main__.Konto object at 0x0135D670>
>>> id(k1)
20305520
>>> hex(20305520)
'0x135d670'
>>> k2 = Konto(4)
>>> id(k2)
20307184
Was verbirgt sich wohl hinter dieser Identitätsnummer?
(b) Prüfe mit geeigneten Python-Dialogen, ob sich die Identitätsnummer eines Objekts ändert, wenn sich der Zustand eines Objekts beim Ausführen einer Methode ändert.
(c) Prüfe mit geeigneten Python-Dialogen, wie Identitätsnummern von Objekten mit Hilfe von Variablen verwaltet werden.
>>> k1 = Konto(3)
>>> id(k1)
20305520
>>> k2 = k1
>>> id(k2)
???
(d) Kannst du dir jetzt die Ergebnisse des oben gezeigten Python-Dialogs erklären?
Benutze auch den id
-Operator, um
Einsicht in die verwalteten Objekte zu erhalten.