Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

بايثونالدالة isinstance()

تعريفها

تستخدم لمعرفة ما إذا كان الكائن الذي نمرره مكان الباراميتر obj تم إنشاؤه من الكلاس الذي نمرره مكان الباراميتر classinfo أم لا.

في حال كان الكائن تم إنشاؤه بشكل مباشر أو غير مباشر من الكلاس فإنه يعتبر أنه منشئ منه.


بناؤها

isinstance(obj, classinfo)

بناؤها

  • مكان الباراميتر obj نمرر الكائن الذي نريد أن نعرف إذا كان تم إنشاؤه من الكلاس.
  • مكان الباراميتر classinfo نمرر إسم الكلاس الذي نريد أن نعرف إذا كان الكائن منشئاً منه.

قيمة الإرجاع

ترجع True في حال كان الكائن الذي نمرره مكان الباراميتر obj قد تم إنشاؤه بشكل مباشر أو غير مباشر من الكلاس الذي نمرره مكان الباراميتر classinfo.
غير ذلك ترجع False.


مثال

Test.py
# 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 A: False
Is obj instance of B: True
Is obj instance of C: True