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

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

تعريفها

تستخدم لمعرفة ما إذا كان الكلاس الذي نمرره مكان الباراميتر subclass يرث من الكلاس الذي نمرره مكان الباراميتر superclass أم لا.

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


بناؤها

issubclass(subclass, superclass)

بارامترات

  • مكان الباراميتر subclass نمرر إسم الكلاس الذي نريد معرفة ما إن كان الكلاس الإبن.
  • مكان الباراميتر superclass نمرر إسم الكلاس الذي نريد أن نعرف ما إذا كان الكلاس الأب.

قيمة الإرجاع

ترجع True في حال كان الكلاس الذي نمرره مكان الباراميتر subclass يرث من الكلاس الذي نمرره مكان الباراميتر superclass.
غير ذلك ترجع False.


مثال

Test.py
# A هنا قمنا بتعريف كلاس فارغ إسمه
class A:
    pass


# A و يرث من الكلاس B هنا قمنا بتعريف كلاس فارغ إسمه
class B(A):
    pass


# B و يرث من الكلاس C هنا قمنا بتعريف كلاس فارغ إسمه
class C(B):
    pass


# عدة مرات بهدف معرفة ما إن كان أول issubclass() هنا قمنا باستدعاء الدالة
# كلاس نمرره لها يرث من الكلاس الآخر و في كل مرة قمنا بطباعة النتيجة 
print('Is B inherit from A:', issubclass(B, A))
print('Is C inherit from B:', issubclass(C, B))
print('Is C inherit from A:', issubclass(C, A))
print('Is A inherit from B:', issubclass(A, B))
print('Is A inherit from C:', issubclass(A, C))

النتيجة

Is B inherit from A: True
Is C inherit from B: True
Is C inherit from A: True
Is A inherit from B: False
Is A inherit from C: False