Implementing PyMyType_Check methods with Python C API?
-
25-09-2019 - |
Question
All the Python-provided types have a check method (i.e., PyList_Check
) that allows you to check if an arbitrary PyObject*
is actually a specific type.
How can I implement this for my own types? I haven't found anything good online for this, though it seems like a pretty normal thing to want to do.
Also, maybe I'm just terrible at looking through large source trees, but I cannot for the life of me find the implementation of PyList_Check
or any of it's companions in the Python (2.5) source.
Solution
That's because they're macros that use deep magic. Save yourself a bit of headache and use PyObject_IsInstance()
instead.
OTHER TIPS
If you'd like to implement your own macro, you could try...
#define PyMyType_Check(op) \
PyObject_TypeCheck(op, &PyMyType_Type)
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow