Objektkennungen in Python (Objektkennungen in Python), Lektion, Seite 724717
https://www.purl.org/stefan_ram/pub/objektkennung_python (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Python-Kurs

Objektkennungen in Python 

id‹ wurde schon in der Lektion zur Introspektion vorgestellt, aber vielleicht beim Lesen oder im Kurs übersprungen.

Jedes Objekt hat eine ganze Zahl als Kennung.

Zu einem bestimmten Zeitpunkt haben niemals zwei Objekte die gleiche Kennzahl.

Während seiner Existenz hat jedes Objekt immer dieselbe Kennzahl.

Diese Kennzahlen erlauben es uns, die Identität von Objekten zu verfolgen.

Die Kennzahl eines Objektes wird durch den Funktor ›id‹ geliefert.

Das Anhängen eines Wertes ändert nichts an der Identität der Liste.

Die Liste ist immer noch dasselbe System  – nur ihr Zustand  hat sich verändert. (Diese Begriffe „System“ und „Zustand“ wurde am Anfang des Kurses vorgestellt.)

Konsolenprotokoll

l =[ 0, 1, 2 ]

l

[0, 1, 2]

id( l )

4720

l.append( 'abc' )

l

[0, 1, 2, 'abc']

id( l )

4720

Die Verbindung zweier Listen mit »+« erzeugt hingegen eine neue Liste.

Wir ändern damit also nicht den Zustand  eines Systems, sondern erzeugen ein neues  System.

Dies zeigt sich dann auch an der Kennung.

Konsolenprotokoll

l =[ 0, 1, 2 ]

l

[0, 1, 2]

id( l )

4720

l = l +[ 'abc' ]

l

[0, 1, 2, 'abc']

id( l )

4740

Weitere Listenoperationen

Das Anhängen  einer Bindungsstelle ist mit der Methode ›append‹ möglich.

Konsolenprotokoll (mit symbolischen Kennungen)

l =[ 20, 21, 22 ]

print( id( l ))

1

l.append( "ab" )

print( l )

[20, 21, 22, 'ab']
print( id( l ))
1

Zum Anhängen einer anderen Liste kann »+« verwendet werden, allerdings entsteht dabei eine neue Liste, während die ursprüngliche Liste nicht verändert wird.

Konsolenprotokoll

l =[ 20, 21, 22 ]

print( id( l ))

1

l = l +[ 'ab' ]

print( l )

[20, 21, 22, 'ab']
print( id( l ))
2

Bei Verwendung des Verbundoperators »+=« wird das Objekt der linken Seite aber beibehalten, falls möglich.

Konsolenprotokoll

l =[ 20, 21, 22 ]

print( id( l ))

1

l +=[ 'ab' ]

print( l )

[20, 21, 22, 'ab']
print( id( l ))
1
Konsolenprotokoll

l =( 20, 21, 22 )

print( id( l ))

1

l +=( 'ab', )

print( l )

(20, 21, 22, 'ab')
print( id( l ))

2

 

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram724717 stefan_ram:724717 Objektkennungen in Python Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd724717, slrprddef724717, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/objektkennung_python