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) Però: >>> 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 Ciracì - Sydarex _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python