Ich schrieb:
> but i think python does
> 
>  if (i == &_i2)
> 
> because there is only one integer object holding the value 2, so
> it is sufficient to compare the addresses (i'm not sure about this,
> perhaps someone smarter can clarify?).

well, as far as i can see the relevant function is 

static int
int_compare(PyIntObject *v, PyIntObject *w)
{
        register long i = v->ob_ival;
        register long j = w->ob_ival;
        return (i < j) ? -1 : (i > j) ? 1 : 0;
}

in Objects/intobject.c, which does compare by value. so, this is
either special-cased elsewhere or not optimized (should/can it be?).

--
David.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to