Question

Tous les types fournis Python disposent d'une méthode de contrôle (à savoir PyList_Check) qui vous permet de vérifier si un PyObject* arbitraire est en fait un type spécifique.

Comment puis-je mettre en œuvre pour mes propres types? Je n'ai pas trouvé quelque chose de bon en ligne pour cela, mais il semble comme une chose assez normal de vouloir faire.

Aussi, peut-être que je suis tout simplement terrible à regarder à travers de grands arbres source, mais je ne peux pas pour la vie de me trouver la mise en œuvre de PyList_Check ou tout c'est des compagnons dans la source Python (2.5).

Était-ce utile?

La solution

En effet, ils sont macros qui utilisent la magie profonde. Epargnez-vous un peu de maux de tête et d'utiliser PyObject_IsInstance() à la place.

Autres conseils

Si vous souhaitez implémenter votre propre macro, vous pouvez essayer ...

#define PyMyType_Check(op) \
    PyObject_TypeCheck(op, &PyMyType_Type)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top