Exkurs - Objekte in Python

Datenobjekte in Python

Jedes Datenobjekt in Python hat eine Identitätsnummer, einen Typ und einen Zustand. Ein Objekt der Klasse Wuerfel könnte etwa wie folgt beschrieben werden:

Datenobjekt

Die Identitätsnummer ist die Adresse des Objekts im Speicher. Sie ist eine Zahl, mit der man ein Datenobjekt eindeutig identifizieren kann.

Der folgende Python-Dialog zeigt, wie man Zustand, Identitätsnummer und Typ eines Objekts bestimmt.

>>> w = Wuerfel()
>>> w
<__main__.wuerfel object at>
>>> id(w)
20307376
>>> hex(20307376)
'0x135ddb0'
>>> type(w)

Veränderbare und unveränderbare Objekte

In Python werden sämtliche Daten durch Objekte repräsentiert. Python unterscheidet zwischen veränderbaren und unveränderbaren Objekten.

Ein Objekt zur Darstellung einer Zahl wie z.B. der Zahl 2 ist ein unveränderbares Objekt. Sein Wert bzw. Zustand kann nicht verändert werden. Wird eine neue Zahl benötigt, so wird sie von einem neuen Objekt verwaltet.

>>> from random import randint
>>> w1 = randint(1, 6)
>>> w2 = w1
>>> w1
2
>>> w2
2
>>> id(w1)
507081248
>>> id(w2)
507081248
>>> w1 = randint(1, 6)
>>> w1
6
>>> w2
2
>>> id(w1)
507081376
>>> id(w2)
507081248

Anders verhält es sich bei veränderbaren Objekten wie z.B. Objekten der Klasse Wuerfel. Mit Hilfe geeigneter Operationen lässt sich der Zustand solcher Objekte verändern, ohne die Identität der Objekte zu verändern.

>>> w1 = Wuerfel()
>>> w2 = w1
>>> w1.augen
2
>>> w2.augen
2
>>> id(w1)
50931920
>>> id(w2)
50931920
>>> w1.werfen()
>>> w1.augen
6
>>> w2.augen
6
>>> id(w1)
50931920
>>> id(w2)
50931920
X

Fehler melden

X

Suche