a = 1
b = 2
print("a:",a,"b:",b)
print("id_a:", id(a), "id_b:", id(b))
a = b #id de a remplace id de b
print("a:",a,"b:",b)
print("id_a:", id(a), "id_b:", id(b))
résultat
a: 1 b: 2
id_a: 93893417024192 id_b: 93893417024224
a: 2 b: 2
id_a: 93893417024224 id_b: 93893417024224
b = 3 #L'id de b est remplacé par l'id de 3,L'identifiant d'un reste le même
print("a:",a,"b:",b)
print("id_a:", id(a), "id_b:", id(b))
résultat
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 de a remplace id de b
print("a:",a,"b:",b)
print("id_a:", id(a), "id_b:", id(b))
b = [3,3] #L'id de b est remplacé par l'id de 3,L'identifiant d'un reste le même
print("a:",a,"b:",b)
print("id_a:", id(a), "id_b:", id(b))
résultat
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 de a remplace id de 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 est remplacé par id 3 et en même temps un[0]L'ID est également remplacé par l'ID de 3,Les identifiants de a et b restent les mêmes
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]))
résultat
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
Lors de l'affectation directement à l'intérieur du dict, l'id du dict ne change pas, mais l'id de l'élément de dict assigné est remplacé. À ce stade, s'il y a une variable qui partage l'id du dict, l'id du dict ne change pas, donc l'élément dict est changé.
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 de a remplace id de 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 est remplacé par id 3 et en même temps un[0]L'ID est également remplacé par l'ID de 3,Les identifiants de a et b restent les mêmes
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]))
résultat
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
Référence: [FAQ sur la programmation - Documentation Python 3.8.1rc1](https://docs.python.org/ja/3/faq/programming.html#how-do-i-write-a-function-with-output-parameters-call -par référence) Passage par valeur et passage par référence en C # -Qiita Pourquoi ne pas utiliser le mot "passer par référence" en Java, JavaScript, Python, Ruby, etc.? --Qiita Je ne peux plus dire qu'il est passé par référence - Qiita
Recommended Posts