[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