استخدام دالة isinstance() للتحقق من نوع البيانات في Python
تمت الكتابة بواسطة: عبد الحكيم
تارخ آخر تحديث: 19 ديسمبر 2024محتوى المقال
- ما هي دالة isinstance()؟
- أمثلة على استخدام isinstance()
- لماذا نستخدم isinstance()؟
- الفرق بين isinstance() و type()
- الخلاصة
في لغة Python، قد تحتاج أحيانًا إلى التحقق مما إذا كان كائن معين ينتمي إلى نوع بيانات محدد قبل العمل عليه. دالة isinstance()
توفر لك طريقة سهلة ومرنة للتحقق من نوع البيانات للكائنات في Python. في هذا المقال، سنتعرف على كيفية استخدام isinstance()
مع أمثلة توضيحية.
ما هي دالة isinstance()
؟
دالة isinstance()
هي دالة مدمجة في Python تُستخدم للتحقق مما إذا كان كائن معين ينتمي إلى نوع بيانات محدد أو أحد الأنواع الفرعية لهذا النوع. إذا كان الكائن ينتمي إلى النوع المحدد، فإن الدالة تُرجع True
، وإلا فإنها تُرجع False
.
الصيغة العامة لدالة isinstance()
الصيغة العامة لاستخدام isinstance()
هي كما يلي:
isinstance(object, classinfo)
حيث:
object
: الكائن الذي تريد التحقق من نوعه.classinfo
: نوع البيانات (أو مجموعة من الأنواع) التي تريد التحقق مما إذا كان الكائن ينتمي إليها.
أمثلة على استخدام isinstance()
مثال بسيط: التحقق من نوع البيانات
إليك مثالًا بسيطًا للتحقق مما إذا كان كائن معين هو عدد صحيح (int
):
x = 10
if isinstance(x, int):
print("x هو عدد صحيح")
else:
print("x ليس عددًا صحيحًا")
الناتج سيكون:
- x هو عدد صحيح
في هذا المثال، يتم التحقق من أن x
هو عدد صحيح باستخدام isinstance()
.
التحقق من أنواع متعددة
يمكن لدالة isinstance()
أيضًا التحقق مما إذا كان الكائن ينتمي إلى أكثر من نوع واحد. يمكنك تمرير مجموعة من الأنواع (مثل tuple
) كمعامل ثاني.
x = 10.5
if isinstance(x, (int, float)):
print("x هو عدد")
else:
print("x ليس عددًا")
الناتج سيكون:
- x هو عدد
في هذا المثال، يتم التحقق مما إذا كان x
هو عدد صحيح أو عدد عشري باستخدام isinstance()
.
استخدام isinstance()
مع الكائنات المخصصة (Classes)
بالإضافة إلى أنواع البيانات المدمجة مثل int
و float
، يمكنك استخدام isinstance()
للتحقق مما إذا كان كائن ينتمي إلى فئة مخصصة (Class). إليك مثالًا:
class Animal:
pass
class Dog(Animal):
pass
dog = Dog()
if isinstance(dog, Animal):
print("dog هو حيوان")
الناتج سيكون:
- dog هو حيوان
في هذا المثال، تم التحقق مما إذا كان dog
كائنًا ينتمي إلى الفئة Animal
باستخدام isinstance()
، على الرغم من أن dog
هو كائن من الفئة الفرعية Dog
التي ترث من Animal
.
لماذا نستخدم isinstance()
؟
إليك بعض الأسباب التي تجعل استخدام isinstance()
مفيدًا في البرمجة:
- التأكد من نوع البيانات: يمكن أن يساعد في تجنب الأخطاء الناتجة عن التعامل مع بيانات من أنواع غير صحيحة.
- التحقق من الوراثة: يمكنه التحقق مما إذا كان الكائن ينتمي إلى نوع رئيسي أو نوع فرعي.
- دعم تعدد الأنواع: يسمح بالتحقق مما إذا كان الكائن ينتمي إلى أكثر من نوع.
- تجنب الأخطاء: يعد وسيلة ممتازة للتحقق من صحة المدخلات في الدوال.
مثال عملي على استخدام isinstance()
في التحقق من المدخلات
إليك مثال على كيفية استخدام isinstance()
للتحقق من نوع مدخلات دالة:
def calculate_square(number):
if isinstance(number, int):
return number ** 2
else:
return "المدخل ليس عددًا صحيحًا"
print(calculate_square(4)) # 16
print(calculate_square("hello")) # المدخل ليس عددًا صحيحًا
في هذا المثال، تم استخدام isinstance()
للتحقق من أن المدخل هو عدد صحيح قبل تنفيذ العملية عليه.
الفرق بين isinstance()
و type()
على الرغم من أن دالة type()
تُستخدم أيضًا للتحقق من نوع البيانات، فإن isinstance()
تُعتبر أفضل في العديد من الحالات. السبب في ذلك هو أن isinstance()
تأخذ في الاعتبار الوراثة بين الفئات، بينما type()
تتحقق من النوع الدقيق فقط.
مثال يوضح الفرق بين isinstance()
و type()
class Animal:
pass
class Dog(Animal):
pass
dog = Dog()
print(isinstance(dog, Animal)) # True
print(type(dog) == Animal) # False
في هذا المثال، isinstance()
تُرجع True
لأن Dog
ترث من Animal
، بينما type()
تُرجع False
لأن النوع الدقيق لـ dog
هو Dog
وليس Animal
.
الخلاصة
دالة isinstance()
هي أداة قوية ومرنة للتحقق من نوع البيانات في Python. سواء كنت تعمل مع الأنواع المدمجة أو الفئات المخصصة، فإن isinstance()
توفر لك وسيلة بسيطة وآمنة للتحقق من أنواع الكائنات. يمكنك استخدامها للتحقق من صحة المدخلات، معالجة الوراثة بين الفئات، والعمل مع بيانات متعددة الأنواع بكفاءة.
طور مهاراتك: مقالات يجب قراءتها في البرمجة
- فحص وجود مفتاح في القواميس باستخدام دالة keys() في Python
- استخدام دالة values() للوصول إلى قيم القواميس في Python
- فهم دالة items() للوصول إلى أزواج المفتاح والقيمة في القواميس في Python
- كيفية استخدام دالة copy() لإنشاء نسخ من القواميس والقوائم في Python
- استخدام دالة update() لتحديث محتويات القواميس في Python
- تحويل الأرقام إلى نصوص ثنائية باستخدام دالة bin() في Python
- تحويل الأرقام إلى نصوص سداسية عشرية باستخدام دالة hex() في Python
- كيفية استخدام دالة pow() لحساب القوة والأسس في Python
- فهم دالة len() لحساب طول القوائم والسلاسل النصية في Python
- دالة range() في Python: كيفية توليد تسلسلات الأرقام بسهولة