`is` means &quot;do these things reside in the same location in memory?&quot;, and the runtime is merely required to give a plausible answer.<p>For inequivalent values or `True`, `False` and `None`, the result is defined. Identity is also preserved across assignment. For everything else, the answer is &quot;whatever the runtime feels like&quot;. PyPy, for instance, will always say True for integers and floats.<p>It&#x27;s not just hard to predict - it&#x27;s inherently unpredictable. The runtime gets free reign as long as you can&#x27;t <i>prove</i> that it&#x27;s lying.