Comportement bizarre pour id(500) dans Gitbash ( Singleton )
en effet dans GitBash id(500) nous retourne la même place mémoire ( Singleton)
dans IDLE id(500) nous retourne un emplacement différent
pour ID(True) on est d'accord il s'agit bien des 2 côtés d'un ( Singleton)
quoi penser ?
comportement étrange id(500)
pouvez-vous m'expliquer pourquoi nous avons 2 objets en mémoire avec l'interpréteur DocString
et 1 seul objet en mémoire avec le terminal VScode
Bonjour Bruno,
Ne t'en fais pas trop avec ça, le résultat peut varier en fonction de la façon dont tu exécutes ton code (ligne par ligne ou tout d'un coup) et des interpréteurs. Cela est dû à des mécanismes d'optimisation de Python.
L'important à retenir ici est surtout qu'une variable n'est qu'un nom associé à un objet. Et que tu peux ainsi avoir 2 noms qui pointent vers le même objet.
Cela a une incidence très importante pour des objets de type muables (j'en parle plus en détail dans la suite du cours).
Par exemple avec les listes, je ne sais pas si tu les as déjà vues, mais un petit exemple devrait te montrer la potentielle "dangerosité" de ne pas comprendre cette notion :
>>> a = []
>>> b = a
>>> a.append(1)
>>> a
[1]
>>> b
[1]
>>> id(a)
4380259904
>>> id(b)
4380259904
Comme tu peux le voir ici, on a deux noms (a et b) qui pointent vers le même objet en mémoire (4380259904). Ainsi, quand on modifie la variable a (a.append(1) pour ajouter 1 dans la liste), on modifie également b.
Bonjour,
Merci, j'ai bien compris
je solde la question
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte