[Python] Operatore Is: funzionamento
Francesco Cirać
sydarex.ml a gmail.com
Sab 27 Giu 2009 17:00:17 CEST
Salve a tutti,
programmo in Python da diverso tempo, dalla versione 2.2 per la verità,
con divertimento e profitto.
Oggi mi sono accorto di non avere per niente chiaro il funzionamento
dell'operatore is.
Is *dovrebbe*, a quanto ne so, essere un operatore di identità.
Cioè restituire True se i due operandi sono la stessa variabile, non se
hanno solo stesso valore.
Cioè:
>>> a is b
Dovrebbe essere equivalente a:
>>> id(a) == id(b)
Peṛ:
>>> a = 5
>>> b = 5
>>> id(a)
505300184
>>> id(b)
505300184
>>> id(5)
505300184
Che non è affatto il comportamento che si aspetterebbe: per quanto ne so
io, due variabili diverse non dovrebbero avere lo stesso indirizzo,
condiviso anche con un literal poi!
E addirittura:
>>> x = 8
>>> y = 12
>>> id(x)
505300232
>>> id(y)
505300296
>>> y=8
>>> id(y)
505300232
Cercando su Google trovo qualche hit, ma niente di chiarificatore.
Immagino che il problema qui non riguardi la comprensione dell'operatore
quanto della gestione delle variabili da parte di Python.
Sapete illuminarmi e/o linkare del materiale sul comportamento di Python
per quanto riguarda la questione?
--
Francesco Cirać - Sydarex
Maggiori informazioni sulla lista
Python