is implemented with id ?

Hans Mulder hansmu at xs4all.nl
Sun Nov 4 05:13:07 EST 2012


On 4/11/12 06:09:24, Aahz wrote:
> In article <mailman.3250.1351999198.27098.python-list at python.org>,
> Chris Angelico  <rosuav at gmail.com> wrote:
>> On Sun, Nov 4, 2012 at 2:10 PM, Steven D'Aprano
>> <steve+comp.lang.python at pearwood.info> wrote:
>>>
>>> /* Shortcut for empty or interned objects */
>>> if (v == u) {
>>>     Py_DECREF(u);
>>>     Py_DECREF(v);
>>>     return 0;
>>> }
>>> result = unicode_compare(u, v);
>>>
>>> where v and u are pointers to the unicode object.
>>
>> There's a shortcut if they're the same. There's no shortcut if they're
>> both interned and have different pointers, which is a guarantee that
>> they're distinct strings. They'll still be compared char-for-char
>> until there's a difference.
> 
> Without looking at the code, I'm pretty sure there's a hash check first.

In 3.3, there is no such check.

It was recently proposed on python-dev to add such a check,
but AFAIK, no action was taken.

-- HansM





More information about the Python-list mailing list