Bonjour
Je me pose cette question: que fait concrètement id() ???
Voici ce que dit la doc
Donc là je ne me trompe pas. Je lis bien "c'est l'adresse mémoire de l'objet".Envoyé par python
Ensuite je fais quelques tests
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 >>> a=5 >>> id(a) 10771648 >>> a=6 >>> id(a) 10771680 >>> a=5 >>> id(a) 10771648 >>> b=a >>> id(b) 10771648 >>> id(5) 10771648 >>> id(6) 10771680 >>> id(a+1) 10771680
Donc là je ne comprends plus trop. Si vraiment id() donne l'adresse de la variable "a", le résutat ne devrait pas être fonction de son contenu. Et si "b" est une copie de "a", son adresse à elle devrait être différente. Et on ne peut pas demander l'adresse d'un nombre codé en dur. En tout cas, ce sont là des questions qui me turlupinent. Peut-être parce que j'essaye de faire le rapprochement avec le &a du C qui n'aurait pas du tout répondu la même chose avec des tests équivalents...
Alors j'avais bien une hypothèse: je me disais que les valeurs en dur (5, 6) sont stockées dans la zone statique du code et que id() me renvoie l'adresse de cette zone. Cela aurait pu expliquer tous les différents résultats... à l'excepté du dernier (id(a+1)) car là c'est un calcul que je demande. Or l'adresse d'un calcul...???
Donc si quelqu'un avait une explication...
Merci à tous de votre attention.
Partager