9 May
2009
9 May
'09
12:36 a.m.
On Fri, May 8, 2009 at 6:14 PM, Benjamin Peterson
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: __reduce__ __setstate__ __reversed__ __length_hint__ __sizeof__ (unless I misunderstand the definition of "special methods", which is possible) -- Daniel Stutzbach, Ph.D. President, Stutzbach Enterprises, LLC http://stutzbachenterprises.com