Résolue

Comportement bizarre pour id(500) dans Gitbash ( Singleton )

# Notions théoriques # Git

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 ?


None


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



Thibault houdon

Mentor

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.

Salut Bruno, tout d'abord merci pour le détail de ta question ça rend le travail beaucoup plus simple =D.

Est ce que c'est bon de ton côté ? On peut fermer la question ? Merci

Bonjour,

Merci, j'ai bien compris

je solde la question


None



Inscris-toi

(c'est gratuit !)

Inscris-toi

Tu dois créer un compte pour participer aux discussions.

Créer un compte

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.