[Python-Dev] redefining is (original) (raw)

Andrew Koenig ark-mlist at att.net
Fri Mar 19 17:09:50 EST 2004


>It certainly doesn't require a builtin operator. I do think, however, >that the proposed comparison is more useful than "is" in most contexts in >which programmers use "is" today. In particular, programs that use "is" >caneasily contain bugs that testing on a particular implementation can >never reveal, and using the proposed comparison instead makes such bugs much less likely (and perhaps even impossible).

maybe, OTOH I suspect that people most puzzled by

>>> a = 1 >>> b = 1 >>> a is b True >>> a = 99 >>> b = 99 >>> a is b True >>> a = 101 >>> b = 101 >>> a is b False

really simply expect there to be just one 1 and 99 and 101, not an half-a-page definition of 'is' or some such involving the notion of (im)mutability.

I think we are agreeing with each other. Because if "is" were redefined in the way that was proposed, we would have the following behavior on every implementation:

>>> a = 1
>>> b = 1
>>> a is b
True
>>> a = 99
>>> b = 99
>>> a is b
True
>>> a = 101
>>> b = 101
>>> a is b
True

regardless of whether id(a)==id(b).



More information about the Python-Dev mailing list