Ero (forse erroneamente) pensando che l'operatore is
esegua il confronto id().Cosa fa l'operatore 'is' in Python?
>>> x = 10
>>> y = 10
>>> id(x)
1815480092
>>> id(y)
1815480092
>>> x is y
True
Tuttavia, con val is not None
, sembra che non sia così semplice.
>>> id(not None)
2001680
>>> id(None)
2053536
>>> val = 10
>>> id(val)
1815480092
>>> val is not None
True
Quindi, cosa fa l'operatore 'is'? E 'solo il confronto tra gli oggetti che ho appena congetturato? In tal caso, val is not None
viene interpretato in Python come not (val is None)
?
Sì, 'val is not None' e' not (val is None) 'sono [equivalenti] (http://stackoverflow.com/questions/12941287/does-not-e-in-c-differ-da -e-not-in-c-in-python). Ma il primo è più leggibile IMO. –