Logo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

Würfelobjekte erzeugen und verwalten

Experimente mit Würfelobjeken

Ziel ist es, Würfel mit Hilfe von Objekten zu simulieren.

Würfel

Als Baustein zur Simulation von Würfeln soll eine Klasse Wuerfel gegeben sein.

Klassendiagramm - Würfel

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
X

Fehler melden

X

Suche