Würfelobjekte erzeugen und verwalten
Experimente mit Würfelobjeken
Ziel ist es, Würfel mit Hilfe von Objekten zu simulieren.
Als Baustein zur Simulation von Würfeln soll eine Klasse Wuerfel
gegeben sein.
Eine Implementierung dieser Klasse findest du in der Datei wuerfel.py.
Ziel der folgenden Betrachtungen ist es, die Verwaltung von Wuerfel
-Objekten
mit Hilfe von Variablen genauer zu untersuchen.
Aufgabe 1
Schaue dir die beiden folgenden Python-Dialoge genau an (und führe sie selber durch). Worin unterscheiden sie sich? Kannst du das unterschiedliche Verhalten auch erklären?
Python-Dialog 1:
>>>
>>> w1 = Wuerfel()
>>> w2 = w1
>>> w1.werfen()
>>> w1.getAugen()
6
>>> w2.getAugen()
6
>>> w2.werfen()
>>> w2.getAugen()
4
>>> w1.getAugen()
4
Python-Dialog 2:
>>>
>>> w1 = Wuerfel()
>>> w2 = Wuerfel()
>>> w1.werfen()
>>> w1.getAugen()
4
>>> w2.getAugen()
2
>>> w2.werfen()
>>> w2.getAugen()
6
>>> w1.getAugen()
4
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.
>>> w1 = Wuerfel()
>>> w1
<__main__.Wuerfel object at 0x0135DDB0>
>>> id(w1)
20307376
>>> hex(20307376)
'0x135ddb0'
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) Was zeigen die beiden folgenden Python-Dialoge? Kannst du jetzt die Ergebnisse der oben gezeigten Python-Dialoge erklären?
Python-Dialog 1:
>>> w1 = Wuerfel()
>>> w2 = w1
>>> id(w1)
20307376
>>> id(w2)
20307376
Python-Dialog 2:
>>> w1 = Wuerfel()
>>> w2 = Wuerfel()
>>> id(w1)
20305808
>>> id(w2)
20307472
Quellen
- Grafik: Würfel - Urheber: Personeoneste - Lizenz: Public Domain