[Python-Dev] redefining is

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