Qu'est-ce qu'un objet en Python. Pourquoi id(a) == id(b) == id(1) ?
📁 Sujets avancés sur Python, exemple, IA, livre, travail
"
Je détaille la question.
Dans les livres sur Python, on écrit que tout en Python est un objet.
Prenons l'approche traditionnelle de l'étude/apprentissage des langages de programmation. Les langages Pascal, C, C++ ont le concept de "nom de variable" (identifiant). Une valeur est liée/assignée au nom de variable. La valeur est stockée en mémoire. Le nom de variable est un moyen (dans le texte source du programme) de se référer à la cellule mémoire pour obtenir la valeur qui y est stockée.
Je ne sais pas si l'affirmation est correcte (pour les langages compilés) : Pour les variables, par exemple de type entier, au moment de l'exécution du programme sur l'ordinateur, le processeur travaille déjà avec les adresses des cellules mémoire où sont stockées les valeurs des variables. C'est-à-dire qu'il n'y a pas de situation où, quelque part à une certaine adresse, le nom de la variable est stocké et il est lié à l'adresse de la cellule, dans laquelle...
"
À différents moments, un objet différent peut être associé au même objet.
Vous vouliez dire : à différents moments, le même nom peut référencer différents objets
Le modèle en Python est simple — il n'est absolument pas nécessaire de savoir ce qu'est une adresse, une cellule mémoire, un pointeur. Il suffit de connaître les noms et les objets auxquels ils sont liés.
Les étiquettes et les balles suffisent pour expliquer n'importe quel comportement au niveau Python — d'abord on n'y croit pas qu'un modèle si simple couvre tous les cas limites.
car a, b, 1 sont des objets différents ?
Vous n'avez qu'un seul objet (un). Les petits entiers sont mis en cache dans CPython. Différents noms a, b référencent le même objet : a is b
Connectez-vous pour laisser une réponse