Byłem (może niesłusznie) myśląc, że operator is
robi porównanie id().Co robi operator "jest" w Pythonie?
>>> x = 10
>>> y = 10
>>> id(x)
1815480092
>>> id(y)
1815480092
>>> x is y
True
Jednak z val is not None
, wydaje się, że to nie jest takie proste.
>>> id(not None)
2001680
>>> id(None)
2053536
>>> val = 10
>>> id(val)
1815480092
>>> val is not None
True
Co robi operator "jest"? Czy to tylko porównanie id obiektów? Jeśli tak, to val is not None
jest interpretowane w języku Python jako not (val is None)
?
Tak, "val nie jest żadnym" i "not (val jest Brak)" są [odpowiednik] (http://stackoverflow.com/questions/12941287/does-not-e-in-c-differ-from -e-not-in-c-in-python). Ale pierwszy jest bardziej czytelny IMO. –