C'est mon deuxième jour de l'apprentissage de python (je connais les bases du C++ et certains de la programmation orientée objet.), et j'ai une légère confusion à l'égard de variables en python.
Voici comment je les comprends actuellement:
Python variables sont des références (ou pointeurs?) pour les objets (qui sont mutables ou immuable). Lorsque nous avons quelque chose comme num = 5
, l'immuable objet 5
est créé quelque part dans la mémoire, et le nom-la référence de l'objet paire de num
est créée dans un certain espace de noms. Lorsque nous avons a = num
, rien n'est copié, mais maintenant, les deux variables font référence au même objet et a
est ajouté au même espace de noms.
C'est là que mon livre, Automatiser les trucs ennuyeux avec Python, me confond. Comme c'est un débutant livre, il ne mentionne pas les objets, les espaces de noms, etc., et il tente d'expliquer le code suivant:
>>> spam = 42
>>> cheese = spam
>>> spam = 100
>>> spam
100
>>> cheese
42
L'explication qu'il propose est exactement la même que celle de C++ livre, dont je ne suis pas heureux à ce sujet que nous traitons avec des références/pointeurs vers des objets. Donc dans ce cas, je suppose que dans la 3e ligne, comme les entiers sont immuables, spam
est attribué un tout nouveau pointeur/référence à un autre emplacement dans la mémoire, c'est à dire la mémoire qu'il a d'abord été pointant vers n'était pas modifié. C'est pourquoi nous avons cheese
se référant à l'objet initial visé par l' spam
. Est-ce la bonne explication?