Je crois plutôt que ça vient de la conception de python, qui dit que chaque entier est une classe, donc a=1 et b=1 fait qu'ils pointent vers la même classe, donc a is b est vrai. Mais passé une certaine limite, ça n'est plus vrai, ça ne sont plus des classes, je ne me rappelle plus pour quelle raison, mais ça a probablement à voir avec le fait qu'on ne peut avoir une infinité de classes pré-définies.
Ce sont des objets et c'est parce que a=1b=1 c'est le même objet parce qu'il y a un cache d'objet. Est-ce que ce cache est une spécificité du runtime ou c'est décrit dans la définition du langage (et pour ce dernier cas est-ce que les bornes sont elles aussi définie) ça je ne sais pas. Quoi qu'il en soit le fait que le is fonctionne sur de petits entiers n'est pas un comportement garanti (exemple https://ideone.com/C4huhz).
[^] # Re: Je joue le jeu
Posté par barmic 🦦 . En réponse au journal le défi du challenge : qu'affiche ce code. Évalué à 2.
Ce sont des objets et c'est parce que
a=1b=1c'est le même objet parce qu'il y a un cache d'objet. Est-ce que ce cache est une spécificité du runtime ou c'est décrit dans la définition du langage (et pour ce dernier cas est-ce que les bornes sont elles aussi définie) ça je ne sais pas. Quoi qu'il en soit le fait que leisfonctionne sur de petits entiers n'est pas un comportement garanti (exemple https://ideone.com/C4huhz).https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll