بايثونالدالة isinstance()
تعريفها
تستخدم لمعرفة ما إذا كان الكائن الذي نمرره مكان الباراميتر obj
تم إنشاؤه من الكلاس الذي نمرره مكان الباراميتر classinfo
أم لا.
في حال كان الكائن تم إنشاؤه بشكل مباشر أو غير مباشر من الكلاس فإنه يعتبر أنه منشئ منه.
بناؤها
isinstance(obj, classinfo)
بناؤها
- مكان الباراميتر
obj
نمرر الكائن الذي نريد أن نعرف إذا كان تم إنشاؤه من الكلاس. - مكان الباراميتر
classinfo
نمرر إسم الكلاس الذي نريد أن نعرف إذا كان الكائن منشئاً منه.
قيمة الإرجاع
ترجع True
في حال كان الكائن الذي نمرره مكان الباراميتر obj
قد تم إنشاؤه بشكل مباشر أو غير مباشر من الكلاس الذي نمرره مكان الباراميتر classinfo
.
غير ذلك ترجع False
.
مثال
# A هنا قمنا بتعريف كلاس فارغ إسمه class A: pass # B هنا قمنا بتعريف كلاس فارغ إسمه class B(): pass # B و يرث من الكلاس C هنا قمنا بتعريف كلاس فارغ إسمه class C(B): pass # obj إسمه C هنا قمنا بإنشاء كائن من الكلاس obj = C() # تم إنشاؤه c عدة مرات لمعرفة من أي كلاسات يعتبر الكائن isinstance() هنا قمنا باستدعاء الدالة print('Is obj instance of A:', isinstance(obj, A)) print('Is obj instance of B:', isinstance(obj, B)) print('Is obj instance of C:', isinstance(obj, C))
النتيجة
Is obj instance of B: True
Is obj instance of C: True