type() النوع/إنشاء صنف ديناميكيًا
آخر تحديث: 2026-09-22
type() النوع/إنشاء صنف ديناميكيًا
type(obj) يُعيد نوع الكائن؛ type(name, bases, dict) يُنشئ صنفًا جديدًا ديناميكيًا.
| التصنيف | الدوال المدمجة |
|---|---|
| النوع | دالة مدمجة |
| إصدار بايثون | all |
📝 الصياغة
type(object)
type(name, bases, dict)
⚙️ المعاملات
| object مطلوب | One-arg form: the object whose type is queried. |
|---|---|
| name مطلوب | Three-arg form: the class name (string); mutually exclusive with the one-arg form. |
| bases مطلوب | Three-arg form: a tuple of base classes. |
| dict مطلوب | Three-arg form: the class namespace dict (attributes/methods). |
القيمة المُعادة:One-arg form: the object's type. Three-arg form: a newly created class.
💥 الاستثناءات
TypeError— Raised when name is not a string in the three-arg form.
▶ مثال
عدّل الكود واضغط تشغيل لرؤية النتيجة في لوحة المخرجات:
المخرجات:
int
10
🏷️ دوال مدمجة ذات صلة
💡 حالات ذات صلة
المزيد من الحالات قادم قريباً — تابعونا.
❓ أسئلة شائعة
Qماذا تُرجع type(42)؟
Aتُرجع — الصيغة الأحادية تُرجع نوع الكائن.
Qما الفرق بين type(x) == int و isinstance(x, int)؟
Aتعترف isinstance بالأصناف الفرعية: bool صنف فرعي من int، لذا isinstance(True, int) هي True بينما type(True) == int هي False؛ عمومًا isinstance أكثر أمانًا.
Qلأي غرض تكون الصيغة الثلاثية type(name, bases, dict)؟
Aتنشئ ديناميكيًا صنفًا جديدًا: type('MyClass', (object,), {'x': 10}) تعادل class MyClass(object): x = 10 — أساس البرمجة بالميتاكلاسات.
Qكيف أحصل على اسم نوع كائن؟
Aاستخدم type(obj).__name__، مثل type(42).__name__ يُرجع 'int'؛ print(type(x)) يعرض صيغة .