métodos de aplicación PyMyType_Check con Python C API?
-
25-09-2019 - |
Pregunta
Todos los tipos previstos-Python tienen un método de verificación (es decir, PyList_Check
) que le permite comprobar si un PyObject*
arbitraria es en realidad un tipo específico.
¿Cómo se puede aplicar esto para mis propios tipos? No he encontrado nada bueno para esta línea, a pesar de que parece una cosa bastante normal que se quiera hacer.
Además, tal vez sólo soy terrible en mirar a través de grandes árboles de código fuente, pero no puedo por la vida de mí encontrar la implementación de PyList_Check
o cualquiera de sus compañeros en el (2.5) fuente de Python.
Solución
Esto se debe a Son macros que usar la magia profunda. Ahorrarse un poco de dolor de cabeza y el uso PyObject_IsInstance()
lugar.
Otros consejos
Si desea implementar su propio macro, podría intentar ...
#define PyMyType_Check(op) \
PyObject_TypeCheck(op, &PyMyType_Type)