Paul D.
Paul D.

Reputation: 1845

Implementing PyMyType_Check methods with Python C API?

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.

Upvotes: 3

Views: 209

Answers (2)

Ignacio Vazquez-Abrams
Ignacio Vazquez-Abrams

Reputation: 798676

That's because they're macros that use deep magic. Save yourself a bit of headache and use PyObject_IsInstance() instead.

Upvotes: 2

Noob Saibot
Noob Saibot

Reputation: 4749

If you'd like to implement your own macro, you could try...

#define PyMyType_Check(op) \
    PyObject_TypeCheck(op, &PyMyType_Type)

Upvotes: 0

Related Questions