[Tutor] An identity question

Cecilia Alm ebbaalm at uiuc.edu
Sun Apr 22 21:02:17 CEST 2007


The differences in cases 1 and 3 vs. 2 is due to 'common values' of
name assignments being treated a bit differently, right? Also, it's
clear why case 5 evaluates to false.  But, why does the case 4
equality check evaluate to True, whereas case 1 and 3 don't?

case 1:
>>> a = 10000
>>> b = 10000
>>> a is b
False

case 2:
>>> a = 10
>>> b = 10
>>> a is b
True

case 3:
>>> def foo2(v):
...     return v
...
>>> A1 = foo2(10000)
>>> B1 = foo2(10000)
>>> A1 is B1
False

case 4:
>>> def foo():
...     x = 10000
...     return x
...
>>> A = foo()
>>> B = foo()
>>> A is B
True

case 5:
>>> C1 = foo2(10000)
>>> D1 = foo2(10001)
>>> C1 is D1
False

Thanks!


More information about the Tutor mailing list