i

Exkurs - Objekte in Python

Datenobjekte in Python

Jedes Datenobjekt in Python hat eine Identitätsnummer, einen Typ und einen Zustand. Ein Objekt der Klasse Ampel 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.

>>> a = Ampel('rot')
>>> a.zustand
'rot'
>>> id(a)
20311856
>>> type(a)
<class '__main__.ampel'="">
</class>

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 Zeichenkette wie z.B. der Zeichenkette 'rot' ist ein unveränderbares Objekt. Sein Wert bzw. Zustand kann nicht verändert werden. Wird eine neue Zeichenkette benötigt, so wird sie von einem neuen Objekt verwaltet.

>>> a1 = 'rot'
>>> a2 = a1
>>> a1
'rot'
>>> a2
'rot'
>>> id(a1)
52607104
>>> id(a2)
52607104
>>> a1 = 'rotgelb'
>>> a1
'rotgelb'
>>> a2
'rot'
>>> id(a1)
52606880
>>> id(a2)
52607104

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

>>> a1 = Ampel('rot')
>>> a2 = a1
>>> a1.zustand
'rot'
>>> a2.zustand
'rot'
>>> id(a1)
52701392
>>> id(a2)
52701392
>>> a1.schalten()
>>> a1.zustand
'rotgelb'
>>> a2.zustand
'rotgelb'
>>> id(a1)
52701392
>>> id(a2)
52701392

Suche

v
7.2.1.3.3
dev.inf-schule.de/oop/python/ampel/beziehungen/exkurs_objektepython
dev.inf-schule.de/7.2.1.3.3
dev.inf-schule.de/@/page/lq6M06CIo3xYf1pe

Rückmeldung geben