Реализация методов PyMyType_Check с Python C API? - PullRequest
3 голосов
/ 10 мая 2010

Все предоставляемые Python типы имеют метод проверки (т. Е. PyList_Check), который позволяет проверить, является ли произвольный PyObject* действительно конкретным типом.

Как я могу реализовать это для моих собственных типов? Я не нашел ничего хорошего в Интернете для этого, хотя это кажется вполне нормальным занятием.

Кроме того, может быть, я просто ужасно смотрю сквозь большие исходные деревья, но я не могу на всю жизнь найти реализацию PyList_Check или любого из ее спутников в исходном коде Python (2.5).

Ответы [ 2 ]

2 голосов
/ 10 мая 2010

Это потому, что это макросы , которые используют глубокую магию. Избавьте себя от головной боли и используйте вместо этого PyObject_IsInstance().

0 голосов
/ 12 ноября 2014

Если вы хотите реализовать свой собственный макрос, вы можете попробовать ...

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