Patrick Maupin wrote:

Actually, I think I overstated my case -- there is some special logic
for len and built-in objects, I think.

Yes, len() invokes the C-level sq_len slot of the type object,
which for built-in types points directly to the C function
implementing the len() operation for that type. So len() on
a string doesn't involve looking up a __len__ attribute or
creating a bound method at all.

The only reason a __len__ attribute exists at all for
built-in types is to give Python code the illusion that
C-coded and Python-coded classes work the same way. Most
of the time it's never used.

If you try the same test using a method that doesn't have
a corresponding type slot (basically anything without a
double_underscore name) you will probably see a small
improvement.

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

Reply via email to