• 0

كيف أحدد نوع كائن في البايثون ؟

هل يمكن تحديد نوع الكائن في البايثون ؟ أي أن أكتب شيفرة لتعطيني نوع هذا الكائن سؤال كان قائمة، سلسلة نصية …

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

للحصول على نوع الكائن يمكنك استخدام دالة type() المدمجة (أي الموجود في البايثون بشكل افتراضي)، فيكفي أن تقوم بتمرير كائن كمعامل وحيد وسوف تقوم هذه الدالة بإرجاع نوع الكائن، كما في المثال التالي:

>>> type([]) is list
True
>>> type({}) is dict
True
>>> type('') is str
True
>>> type(0) is int
True
>>> type({})
<type 'dict'>
>>> type([])
<type 'list'>

كما يمكنك أيضا استخدام دالة isinstance وهذه الدالة مدمجة أيضا في البايثون، وتفيد خاصة في حالات الكشف عن أنواع الدالات الموروثة كما في المثال التالي:

>>> class Test1 (object):
        pass
>>> class Test2 (Test1):
        pass
>>> a = Test1()
>>> b = Test2()
>>> type(a) is Test1
True
>>> type(b) is Test2
True
>>> isinstance(b, Test1)
True
>>> isinstance(b, Test2)
True
>>> isinstance(a, Test1)
True
>>> isinstance(a, Test2)
False
>>> isinstance([], list)
True
>>> isinstance({}, dict)
True

كما أن المعامل الثاني لدالة isinstance() تقبل مجموعة من الأنواع على شكل tuple، فإذا أردت مثلا التأكد من مجموع أنواع في المرة الواحد، فستقوم isinstance() بإرجاع true إذا كان الكائن أحد هذه الأنواع:

>>> isinstance([], (tuple, list, set))
True

المصادر: 1 2

تمّ تعديل بواسطة هشام رزق الله

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن