Is it possible in Python to create two immutable objects with the same value?
So that you understand what I mean, here are some examples:
>>> a = 13
>>> b = 13
>>> a is b
True
>>> a = 13
>>> b = 26/2
>>> a is b
True
>>> a = 13
>>> b = int.__new__(int, 13)
>>> a is b
True
>>> a = 13
>>> b = int("13")
>>> a is b
True
Is it possible to create a and b with the same value but a is b to return False?
Just learning…. 😀
Sure, just choose a value that is too large to be cached:
Only small integers and short strings will be cached (and this is implementation-dependent, so you shouldn’t rely on that anyway).
isshould only be used for testing object identity, never for testing equality.