issubclass() فحص وراثة الصنف
آخر تحديث: 2026-09-22
issubclass() فحص وراثة الصنف
issubclass(cls, classinfo) تتحقق مما إذا كان cls صنفًا فرعيًا من classinfo.
| التصنيف | الدوال المدمجة |
|---|---|
| النوع | دالة مدمجة |
| إصدار بايثون | all |
📝 الصياغة
issubclass(class, classinfo)
⚙️ المعاملات
| class مطلوب | The class to check. |
|---|---|
| classinfo مطلوب | A class or tuple of classes; True if class is a subclass. |
القيمة المُعادة:True if class is a subclass of classinfo (or any type in it).
💥 الاستثناءات
TypeError— Raised when classinfo is not a class or a tuple of classes.
▶ مثال
عدّل الكود واضغط تشغيل لرؤية النتيجة في لوحة المخرجات:
المخرجات:
True
False
🏷️ دوال مدمجة ذات صلة
💡 حالات ذات صلة
المزيد من الحالات قادم قريباً — تابعونا.
❓ أسئلة شائعة
Qما الفرق بين issubclass(B, A) و isinstance(b, A)؟
Aيقارن issubclass «صنفًا مع صنف» في علاقة الوراثة؛ بينما يقارن isinstance «مثيلًا مع صنف». بالنسبة إلى b = B()، يُرجع isinstance(b, A) القيمة True.
Qماذا تُرجع issubclass(A, A)؟
Aتُرجع True؛ كل صنف هو صنف فرعي من نفسه.
Qماذا يحدث إذا كانت الوسيطة الأولى مثيلًا؟
Aيُثار TypeError؛ تقبل issubclass الأصناف فقط — لفحص المثيلات استخدم isinstance.
Qكيف أفحص عدة آباء دفعة واحدة؟
Aمرّر صفًّا كوسيطة ثانية: issubclass(B, (A, C))، يكون True إذا كان B صنفًا فرعيًا لأي منها.