تنفيذ أساليب pymytype_check مع Python C API؟
-
25-09-2019 - |
سؤال
جميع الأنواع المقدمة من Python لها طريقة فحص (أي ، PyList_Check
) يتيح لك التحقق مما إذا كان التعسفي PyObject*
هو في الواقع نوع محدد.
كيف يمكنني تنفيذ هذا لأنواعي الخاصة؟ لم أجد أي شيء جيد عبر الإنترنت لهذا ، على الرغم من أنه يبدو أنه أمر طبيعي جدًا يريد القيام به.
أيضًا ، ربما أكون فظيعًا في النظر إلى الأشجار المصدر الكبيرة ، لكن لا يمكنني أن أجد تنفيذًا لي. PyList_Check
أو أي من رفاقه في مصدر بيثون (2.5).
المحلول
هذا بسبب هم وحدات الماكرو التي تستخدم السحر العميق. وفر لنفسك القليل من الصداع والاستخدام PyObject_IsInstance()
في حين أن.
نصائح أخرى
إذا كنت ترغب في تنفيذ الماكرو الخاص بك ، فيمكنك المحاولة ...
#define PyMyType_Check(op) \
PyObject_TypeCheck(op, &PyMyType_Type)
لا تنتمي إلى StackOverflow