Re:WTF Python: Exploring and understanding Python through su...
by masklinn on Thursday February 11, 2021 @06:10AM
(#26100297)
> Checking for reference equality (comparing pointers) is such a niche requirement it should be hidden behind stronger syntactic vinegar.
In python it’s common due to `None`, which you really want to check by identity. Other placeholders as well. This is such a major use case that in 3.9 `is` was moved out of the generic `compare_op` instruction and into its own.
And because __eq__ can be overridden, aside from being noticeably slower `x == None` is not truly reliable.
Re:WTF Python: Exploring and understanding Python through su...
by IgorPartola on Thursday February 11, 2021 @08:59AM
(#26101544)
It’s not even that. CPython happens to sue memory address as ID, but the language doesn’t require that. You could easily use something else for the object ID and get completely different behavior.
Every JVM language that came after Java reverses this. Here, "is" simply is too nice. Should've named it something nobody will accidentally use.