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
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
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
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
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