Serhiy Storchaka added the comment: * If a type only defines tp_fastcall: tp_fastcall is always use (tp_call uses the wrapper)
Is tp_call set to the wrapper rather then inheriting? What if tp_call is defined in a superclass? > * If a type defines tp_call and tp_fastcall, PyObject_Call() uses tp_call > whereas _PyObject_FastCallDict() uses tp_fastcall. I would consider this as a bug. It would be weird if different ways of calling cause executing different code. What about dynamically changed Python types? What if you set or delete the __call__ attribute of Python class? ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue29259> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com