Heim >Backend-Entwicklung >Python-Tutorial >Die Werttypen und Referenztypen von Python und der Unterschied zwischen Wertübergabe und Referenzübergabe

Die Werttypen und Referenztypen von Python und der Unterschied zwischen Wertübergabe und Referenzübergabe

巴扎黑
巴扎黑Original
2017-07-20 09:28:142060Durchsuche

Werttyp:

Enthält: Zeichenfolge, Tupel, Wert, selbst darf nicht geändert werden

Referenztyp:

Enthält: Liste, Wörterbuch, selbst darf nicht geändert werden erlaubt Ändern

a = 2

b = a

a = 3

Ändern Sie einfach den Wert des Werttyps Lassen Sie es auf zeigen Eine neue Speicheradresse ändert den Wert der Variablen b nicht

lista = [1,2]

listb = lista

lista[ 0] = 3

Ändern Sie den Wert des Referenztyps. Da die Adresse von listb mit lista übereinstimmt, wird sie auch geändert.

Im Allgemeinen können Sie nur den Wert kopieren Verwenden Sie die Sharding-Operation

listb = lista[:]

Die Wertübergabe übergibt nur den Wert
Die Referenzübergabe übergibt die Speicheradresse. Nach der Änderung wird der der Speicheradresse entsprechende Wert gespeichert geändert werden.
Am klarsten ist es, ein Array als Beispiel zu verwenden. Wenn wir beispielsweise ein Array a[]={1,2};
definieren, dann ist a[0]=1,a[1]=2 .
Wenn wir den Elementwert in Array a als Parameter übergeben, übergibt es eigentlich nur den Wert und hat keine Auswirkung auf das Array selbst.
Wenn wir den Zeiger von Array a als Parameter übergeben, dann die Funktion das damit umgeht, kann den Wert in Array a direkt ändern.

Das obige ist der detaillierte Inhalt vonDie Werttypen und Referenztypen von Python und der Unterschied zwischen Wertübergabe und Referenzübergabe. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn