Domanda

Tutti i tipi Python fornite hanno un metodo di controllo (cioè, PyList_Check) che consente di controllare se un PyObject* arbitraria è in realtà un tipo specifico.

Come faccio a implementare questo per i miei tipi? Non ho trovato nulla di buono online per questo, anche se sembra una cosa abbastanza normale voler fare.

Inoltre, forse sono solo terribile a guardare attraverso i grandi alberi di origine, ma non posso per la vita di me trovare la realizzazione di PyList_Check o da suoi compagni nella (2.5) sorgente Python.

È stato utile?

Soluzione

Questo perché Sono macro che utilizzano la magia profonda. Salva te stesso un po 'di mal di testa e l'uso PyObject_IsInstance() .

Altri suggerimenti

Se vuoi per implementare il proprio macro, si potrebbe provare ...

#define PyMyType_Check(op) \
    PyObject_TypeCheck(op, &PyMyType_Type)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top