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>
>>> 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.

X

Fehler melden

X

Suche