Überprüfen Sie das Verhalten beim Zuweisen von Python

Zusammenfassung

Verhaltensbestätigung beim Ersetzen

Weisen Sie int-Variablen zu

a = 1
b = 2
print("a:",a,"b:",b)
print("id_a:", id(a), "id_b:", id(b))
a = b   #ID von a ersetzt ID von b
print("a:",a,"b:",b)
print("id_a:", id(a), "id_b:", id(b))

Ergebnis

a: 1 b: 2
id_a: 93893417024192 id_b: 93893417024224
a: 2 b: 2
id_a: 93893417024224 id_b: 93893417024224

Ersetzen Sie b durch eine neue Variable 3

b = 3   #Die ID von b wird durch die ID von 3 ersetzt,Die ID von a bleibt gleich
print("a:",a,"b:",b)
print("id_a:", id(a), "id_b:", id(b))

Ergebnis

a: 2 b: 3
id_a: 93893417024224 id_b: 93893417024256

Wenn die Variable Liste ist

a = [1,1]
b = [2,2]
print("a:",a,"b:",b)
print("id_a:", id(a), "id_b:", id(b))
a = b  #ID von a ersetzt ID von b
print("a:",a,"b:",b)
print("id_a:", id(a), "id_b:", id(b))
b = [3,3]  #Die ID von b wird durch die ID von 3 ersetzt,Die ID von a bleibt gleich
print("a:",a,"b:",b)
print("id_a:", id(a), "id_b:", id(b))

Ergebnis

a: [1, 1] b: [2, 2]
id_a: 140361960710984 id_b: 140361960208392
a: [2, 2] b: [2, 2]
id_a: 140361960208392 id_b: 140361960208392
a: [2, 2] b: [3, 3]
id_a: 140361960208392 id_b: 140361960256584

Zuordnung der Liste zum Element

a = [1,1]
b = [2,2]
print("a:",a,"b:",b)
print("id_a:", id(a), "id_b:", id(b))
print("id_a[0]:", id(a[0]), "id_b[0]:", id(b[0]))
a = b  #ID von a ersetzt ID von b
print("a:",a,"b:",b)
print("id_a:", id(a), "id_b:", id(b))
print("id_a[0]:", id(a[0]), "id_b[0]:", id(b[0]))
b[0] = 3  # b[0]ID wird durch ID 3 ersetzt und gleichzeitig a[0]Die ID wird auch durch die ID 3 ersetzt,Die IDs von a und b bleiben gleich
print("a:",a,"b:",b)
print("id_a:", id(a), "id_b:", id(b))
print("id_a[0]:", id(a[0]), "id_b[0]:", id(b[0]))

Ergebnis

a: [1, 1] b: [2, 2]
id_a: 140361961620360 id_b: 140361958272904
id_a[0]: 93893417024192 id_b[0]: 93893417024224
a: [2, 2] b: [2, 2]
id_a: 140361958272904 id_b: 140361958272904
id_a[0]: 93893417024224 id_b[0]: 93893417024224
a: [3, 2] b: [3, 2]
id_a: 140361958272904 id_b: 140361958272904
id_a[0]: 93893417024256 id_b[0]: 93893417024256

Zuweisung von Elementen vom Typ dikt

Bei der Zuweisung direkt innerhalb des Diktats ändert sich die ID des Diktats nicht, aber die ID des zugewiesenen Diktatelements wird ersetzt. Wenn zu diesem Zeitpunkt eine Variable vorhanden ist, die die ID des Diktats teilt, ändert sich die ID des Diktats nicht, sodass das Dikt-Element geändert wird.

a = {0:1}
b = {0:2}
print("a:",a,"b:",b)
print("id_a:", id(a), "id_b:", id(b))
print("id_a[0]:", id(a[0]), "id_b[0]:", id(b[0]))
a = b  #ID von a ersetzt ID von b
print("a:",a,"b:",b)
print("id_a:", id(a), "id_b:", id(b))
print("id_a[0]:", id(a[0]), "id_b[0]:", id(b[0]))
b[0] = 3  # b[0]ID wird durch ID 3 ersetzt und gleichzeitig a[0]Die ID wird auch durch die ID 3 ersetzt,Die IDs von a und b bleiben gleich
print("a:",a,"b:",b)
print("id_a:", id(a), "id_b:", id(b))
print("id_a[0]:", id(a[0]), "id_b[0]:", id(b[0]))

Ergebnis

a: {0: 1} b: {0: 2}
id_a: 140362018772456 id_b: 140361986516168
id_a[0]: 93893417024192 id_b[0]: 93893417024224
a: {0: 2} b: {0: 2}
id_a: 140361986516168 id_b: 140361986516168
id_a[0]: 93893417024224 id_b[0]: 93893417024224
a: {0: 3} b: {0: 3}
id_a: 140361986516168 id_b: 140361986516168
id_a[0]: 93893417024256 id_b[0]: 93893417024256

Referenz: [Programmier-FAQ - Python 3.8.1rc1-Dokumentation](https://docs.python.org/ja/3/faq/programming.html#how-do-i-write-a-function-with-output-parameters-call -durch Referenz) Wert übergeben und Referenz in C # -Qiita übergeben Warum sollten wir das Wort "Referenzübergabe" nicht in Java, JavaScript, Python, Ruby usw. verwenden? --Qiita Ich kann nicht sagen, dass es nicht mehr als Referenz übergeben wird - Qiita

Recommended Posts

Überprüfen Sie das Verhalten beim Zuweisen von Python
Überprüfen Sie das Verhalten des Zerstörers in Python
[Python] Überprüfen Sie die installierten Bibliotheken
[Python] Überprüfen Sie das aktuelle Verzeichnis und verschieben Sie das Verzeichnis
Verhalten beim Auflisten in Python heapq
Den Typ mit Python beherrschen? (Wann ist eine Typprüfung durchzuführen?)
Verhalten bei der Rückkehr in den with-Block
Überprüfen Sie die Existenz der Datei mit Python
[Python, Multiprocessing] Verhalten für Ausnahmen bei Verwendung von Multiprocessing
Überprüfen Sie, ob die URL in Python vorhanden ist
Überprüfen Sie den Pfad des importierten Python-Moduls
Python-Grammatikprüfung
Überprüfen Sie Elemente, wenn das importierte Python-Modul nicht wie erwartet funktioniert
[Python] Checklistenelemente alle, alle
Überprüfen Sie, ob die Zeichen in Python ähnlich sind
Wann wirken sich Python-Funktionen auf die Argumente des Aufrufers aus?
[Python, CPython] GC-Verhalten beim Auslösen einer Ausnahme
Überprüfen Sie das Datum der Flaggenpflicht mit Python
[Python] Vorsichtsmaßnahmen beim Zuweisen von Werten zu mehrdimensionalen Arrays
Python Hinweis: Wenn Sie einer Zeichenfolge einen Wert zuweisen
Verhalten beim Speichern eines Python-Datetime-Objekts in MongoDB
[Für Anfänger] Unerwartetes Verhalten, wenn beim Festlegen des Pfads in Python "\" enthalten ist
Überprüfen Sie, ob die Zeichenfolge eine Zahl in Python ist
Finden Sie das maximale Python
Einfache Möglichkeit, die Quelle der Python-Module zu überprüfen
Python Hinweis: Wenn der Befehl pip nicht verwendet werden kann
Importieren Sie audit.log in Splunk und überprüfen Sie das Verhalten beim ersten Start von Splunk.
Grundeinstellungen bei Verwendung der foursquare-API mit Python
Python-Standardargumentverhalten
[Python] Verhalten von Argmax
der Zen von Python
Überprüfen Sie types_map, wenn Sie Mimetypen mit AWS Lambda (Python) verwenden.
Mixer, Python, Kugelverhalten
Python Gibt die Funktion an, die ausgeführt werden soll, wenn das Programm endet
Überprüfen Sie, wann die Version nicht in pyenv wechselt
Domaincheck mit Python
[Python] Teilen Sie das Datum
Informationen zur Option --enable-shared beim Erstellen von Python unter Linux
Python # Überprüfen Sie die Typidentität
Überprüfen Sie die atrophische Natur der Wahrscheinlichkeitsverteilung in Python
Überprüfen Sie die Version mit Python
Python Hinweis: Das Rätsel, einer Variablen eine Variable zuzuweisen
[Python] So überprüfen Sie, ob der Schlüssel im Wörterbuch vorhanden ist
Überprüfen Sie die Funktionsweise von Python für .NET in jeder Umgebung
Lösung, wenn das Bild mit tkinter [python] nicht angezeigt werden kann
Verhalten am Ende von Linux weniger abhängig von der Verbindungsquelle
Überprüfen Sie im Voraus, was passiert, wenn der Befehl ausgeführt wird
[Python: UnicodeDecodeError] Eine der Fehlerlösungen beim Lesen von CSV
Überprüfen Sie, ob der Docker-Container keine Verbindung zum Internet herstellt
Lösen Sie das japanische Problem, wenn Sie das CSV-Modul in Python verwenden.
python3 Messen Sie die Verarbeitungsgeschwindigkeit.
Geschichte beim Iterieren des Python-Tupels
Überprüfen Sie die Python-Abdeckung mit pytest-cov
Finde Fehler in Python
Vergleichen wir die Python-Array-ähnlichen Typen
Über das Python-Modul venv