Python Language Réutilisation d'objets primitifs


Exemple

Une chose intéressante à noter qui peut aider à optimiser vos applications est que les primitives sont en fait également recalculées sous le capot. Jetons un coup d'oeil aux chiffres; pour tous les entiers compris entre -5 et 256, Python réutilise toujours le même objet:

>>> import sys
>>> sys.getrefcount(1)
797
>>> a = 1
>>> b = 1
>>> sys.getrefcount(1)
799

Notez que le refcount augmente, ce qui signifie que a et b référencent le même objet sous-jacent lorsqu'ils font référence à la primitive 1 . Cependant, pour les nombres plus importants, Python ne réutilise pas réellement l'objet sous-jacent:

>>> a = 999999999
>>> sys.getrefcount(999999999)
3
>>> b = 999999999
>>> sys.getrefcount(999999999)
3

Étant donné que le refcount pour 999999999 ne change pas lors de l'affectation à a et b nous pouvons en déduire qu'ils font référence à deux objets sous-jacents différents, même s'ils se voient attribuer la même primitive.