[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