Maison >développement back-end >Tutoriel Python >Variables Python : références ou pointeurs ?
Comprendre les variables Python : références et pointeurs
On suppose généralement que les variables en Python sont uniquement des pointeurs. Cependant, une compréhension plus approfondie révèle que cela n'est pas tout à fait exact.
Considérez l'extrait de code suivant :
i = 5 j = i j = 3 print(i)
En partant de l'hypothèse que les variables sont des pointeurs, on pourrait s'attendre à ce que le résultat soit 3, en supposant que le pointeur stocké dans j a été réaffecté. Cependant, le résultat réel est 5.
Pour résoudre cet écart, il est crucial de reconnaître que les variables en Python ne sont pas des pointeurs au sens traditionnel. Au lieu de cela, ils servent de références à des objets en mémoire.
Références en Python
Une référence est un emplacement mémoire qui pointe vers un objet. Dans le cas de types de données primitifs comme les entiers (par exemple, i = 5), la variable stocke la valeur réelle. Cependant, pour les objets mutables comme les listes (par exemple, i = [1,2,3]), la variable stocke une référence à l'objet en mémoire.
Comportement basé sur le type d'objet
Lorsqu'une nouvelle variable (par exemple, j) se voit attribuer une référence à une variable existante (par exemple, i), les deux variables pointent vers le même objet sous-jacent. Les modifications apportées via l'une ou l'autre variable sont reflétées dans les deux.
Exemple avec des listes
Considérez l'extrait de code :
i = [1,2,3] j = i i[0] = 5 print(j)
Dans ce cas, le la sortie est [5,2,3]. Cela démontre que lorsque l'élément de liste à l'index 0 est modifié via i, le changement se reflète également dans j puisqu'ils font tous deux référence à la même liste.
Conclusion
Les variables en Python fonctionnent comme des références plutôt que comme des pointeurs. Ils permettent à plusieurs variables de pointer vers le même objet, permettant le partage de données et une utilisation efficace de la mémoire. Comprendre ce concept est essentiel pour une programmation efficace en Python.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!