[Python-Dev] special method lookup: how much do we care?

Benjamin Peterson benjamin at python.org
Sat May 9 02:37:45 CEST 2009


2009/5/8 Daniel Stutzbach <daniel at stutzbachenterprises.com>:
> On Fri, May 8, 2009 at 6:14 PM, Benjamin Peterson <benjamin at python.org>
> wrote:
>>
>> Normally special methods use slots of the PyTypeObject struct.
>> typeobject.c looks up all those methods on Python classes correctly.
>> In the case of __enter__ and __exit__, the compiler generates bytecode
>> to look them up, and that bytecode use PyObject_Getattr.
>
> Would this problem apply to all special methods that don't use a slot in
> PyTypeObject, then?  I know of several other examples:

Yes. I didn't think of those.

>
> __reduce__
> __setstate__
> __reversed__
> __length_hint__
> __sizeof__
>
> (unless I misunderstand the definition of "special methods", which is
> possible)



-- 
Regards,
Benjamin


More information about the Python-Dev mailing list