This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author serhiy.storchaka
Recipients methane, serhiy.storchaka, vstinner
Date 2017-01-13.14:47:35
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <>
* 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?
Date User Action Args
2017-01-13 14:47:35serhiy.storchakasetrecipients: + serhiy.storchaka, vstinner, methane
2017-01-13 14:47:35serhiy.storchakasetmessageid: <>
2017-01-13 14:47:35serhiy.storchakalinkissue29259 messages
2017-01-13 14:47:35serhiy.storchakacreate