Ka kaq shumë gjëra të mrekullueshme që ndodhin nën kapuçin e Python. Le të hedhim një vështrim të shpejtë në njërën prej tyre.
Duke marrë parasysh copëzën e mëposhtme të kodit:

>>> x = 0
>>> y = 100
>>> z = 150
>>> print(x is 0)
>>> print(y is 100)
>>> print(z is 150)

Me siguri i keni marrë me mend rezultatet. Të gjitha operacionet e testit të anëtarësimit do të rezultojnë në shtypjen e E vërtetë në rreshta të rinj. Kjo ishte e lehtë. Le të shohim një shembull tjetër:

>>> x = 200
>>> y = 250
>>> z = 333
>>> print(x is 200)
True 
>>> print(y is 250)
True
>>> print(z is 333)
False

Prisni… Çfarë po ndodh? Pse z nuk është 333?
Përgjigja është efikasiteti i Python. Të gjithë numrat e plotë të Python zbatohen si objekte me numër të plotë "të gjatë" me madhësi arbitrare. Për të rritur shpejtësinë, Python ruan numrat në memorien e tij. Sa herë që krijoni një numër të ri në rangun [-5, 256] Python do t'ju kthejë vetëm treguesin tek objekti, pasi objekti tashmë ekziston në memorie.

Sipas "dokumentacionit" zyrtar të Python: "Zbatimi aktual i objektit PyLong FromLong mban një grup objektesh me numra të plotë për të gjithë numrat e plotë midis -5 dhe 256, kur krijoni një int në atë diapazon, në fakt thjesht ktheheni një referencë për objektin ekzistues”.

>>> x = 255
>>> print (x is 255)
True
>>> y = 256
>>> print (y is 256)
True
>>> z = 257
>>> print(z is 257)
False
>>> print(z == 257)
True

Siç e shihni, instantimi i një int nga diapazoni [-5, 256] do të krijojë një objekt të ri në memorie.

Sipas "dokumentacionit" të bibliotekës standarde të Python: "Operatorët is dhe is not testojnë për identitetin e një objekti: x is y është e vërtetë nëse dhe vetëm nëse x dhe y janë i njëjti objekt. Identiteti i një objekti përcaktohet duke përdorur funksionin id(). x is not y jep vlerën e së vërtetës së kundërt."

x is y
is equivalent to:
id(x) == id(y)
>>> x = 255
>>> y = 255
>>> id(x)
9310272
>>> id(y)
9310272
>>> x is y
True

Fillova udhëtimin tim në Python 3 vjet më parë dhe nuk ndalova kurrë së zbuluari veçori dhe truke të reja. Bota e Python është me të vërtetë magjepsëse, nuk ndaloni së mësuari.

“Kjo është ajo që të mësuarit. Papritmas kupton diçka që ke kuptuar gjithë jetën, por në një mënyrë të re.” ― Doris Lessing