Message 195513 - Python tracker
Couldn't you make use of inspect.getattr_static()? getattr_static(obj.__class__, '__index__').__get__(obj)() getattr_static() does some extra work to get do the right lookup. I haven't verified that it matches _PyType_Lookup() exactly, but it should be pretty close at least. Also, pickle (unfortunately) also does lookup on instances rather than classes for the special methods (issue #16251).