On Sun, Nov 4, 2012 at 2:10 PM, Steven D'Aprano <steve+comp.lang.pyt...@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. But it probably isn't enough of a performance penalty to be concerned with. It's enough to technically prove the point that 'is' is faster than '==' and is still safe if both strings are interned; it's not enough to make 'is' better than '==', except in very specific situations. ChrisA -- http://mail.python.org/mailman/listinfo/python-list