Maison >développement back-end >Tutoriel Python >Les variables Python sont-elles des pointeurs ou des références ?

Les variables Python sont-elles des pointeurs ou des références ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-05 05:20:09506parcourir

Are Python Variables Pointers or References?

Les variables Python sont-elles des références ?

La notion selon laquelle "les variables en Python sont des pointeurs" peut être trompeuse. Pour clarifier ce malentendu, examinons deux exemples de code :

Exemple 1 :

i = 5
j = i
j = 3
print(i)

Si les variables étaient des pointeurs, nous nous attendrions à ce que le résultat soit 3. Cependant , la sortie réelle est 5. En effet, les variables Python ne stockent pas la valeur réelle d'un objet mais plutôt une référence à it.

Exemple 2 :

i = [1,2,3]
j = i
i[0] = 5
print(j)

Contrairement au premier exemple, le résultat ici est [5,2,3]. Cette fois, changer le premier élément de la liste liée à i affecte également la liste liée à j. En effet, i et j font référence au même objet de liste.

Que sont réellement les variables Python ?

Pour comprendre correctement les variables Python, nous devons les considérer comme références plutôt que des pointeurs. Lorsque nous attribuons une valeur à une variable, nous lions essentiellement cette variable à un objet particulier en mémoire.

La principale différence entre les références et les pointeurs est que les références ne peuvent pas être réaffectées pour pointer vers un objet différent. Au lieu de cela, ils restent liés en permanence à l'objet d'origine.

Dans les exemples ci-dessus, i et j sont des références aux objets int(5) et list([1,2,3]) d'origine, respectivement. Changer la valeur de i n'affecte pas j car ils font tous deux référence à des objets différents. Cependant, modifier la valeur d'un élément dans la liste affecte à la fois i et j car ils font tous deux référence au même objet de liste.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn