isinstance() فحص النوع

آخر تحديث: 2026-09-22

isinstance() فحص النوع

isinstance(obj, classinfo) تتحقق مما إذا كان obj نسخة من classinfo (أو نسخة من صنفه الفرعي)، ويمكن أن يكون classinfo tuple.

التصنيفالدوال المدمجة
النوعدالة مدمجة
إصدار بايثونall

📝 الصياغة

isinstance(object, classinfo)

⚙️ المعاملات

object مطلوبThe object to check.
classinfo مطلوبA type, or a tuple of types (union check).

القيمة المُعادة:True if object is an instance of classinfo (or any type in it).

💥 الاستثناءات

▶ مثال

عدّل الكود واضغط تشغيل لرؤية النتيجة في لوحة المخرجات:

المخرجات:

True
True
False
المزيد من الحالات قادم قريباً — تابعونا.

❓ أسئلة شائعة

Qما الفرق بين isinstance(x, int) و type(x) == int؟
Aتراعي isinstance علاقات الوراثة (مثيل الصنف الفرعي يُرجع True أيضًا)؛ بينما type(x) == int يتطلب مطابقة النوع تمامًا. عادةً isinstance أكثر مرونة.
Qماذا تُرجع isinstance(True, int)؟
Aتُرجع True، لأن bool صنف فرعي من int؛ لتمييز القيم المنطقية عن الأعداد تحقق إضافيًا من type(x) is bool.
Qهل يمكن أن تكون الوسيطة الثانية أنواعًا متعددة؟
Aنعم، مرّر صفًّا: isinstance(x, (int, float)) يُرجع True إذا تحقق أي منها؛ إذا لم تكن classinfo نوعًا أو صف أنواع يُثار TypeError.
Qهل يمكن لـ isinstance فحص الواجهات/الأنواع المجردة؟
Aنعم، يمكن فحص الأصناف الأساسية المجردة، مثل isinstance(x, Iterable) أو isinstance(x, collections.abc.Sequence) — أكثر متانة من فحص نوع محدد.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%