Реализация методов pymytype_check с python c api?
-
25-09-2019 - |
Вопрос
Все типы Python, которые имеют метод проверки (т. Е. PyList_Check
) это позволяет проверить, является ли произвольным PyObject*
на самом деле конкретный тип.
Как я могу реализовать это для моих собственных типов? Я не нашел ничего хорошего в Интернете для этого, хотя кажется, что это довольно нормальная вещь, которую нужно сделать.
Также, может быть, я просто ужасен, глядя через крупные источники, но я не могу за жизнь меня найти реализацию PyList_Check
Или любой из его компаньонов в источнике Python (2.5).
Решение
Это потому что Они макрос Это использует глубокую магию. Сэкономьте себя немного головной болью и используйте PyObject_IsInstance()
вместо.
Другие советы
Если вы хотите реализовать свой собственный макрос, вы можете попробовать ...
#define PyMyType_Check(op) \
PyObject_TypeCheck(op, &PyMyType_Type)