الفرق بين المراجعتين لصفحة: «Python/isinstance»

من موسوعة حسوب
إضافة الصّفحة
 
لا ملخص تعديل
 
(4 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:الدالة <code>isinstance()‎</code> في بايثون}}</noinclude>
<noinclude>{{DISPLAYTITLE:الدالة <code>isinstance()‎</code> في بايثون}}</noinclude>
تعيد الدّالة <code>isinstance()‎</code> قيمة منطقيّةً تُشير إلى ما إذا كان الكائن المُعطى نسخة (instance) من الصّنف المُعطى أو لا.
تعيد الدّالة <code>isinstance()‎</code> قيمة منطقيّةً تُشير إلى ما إذا كان الكائن المُعطى نسخة (instance) من الصّنف المُعطى أم لا.


== البنية العامة ==
== البنية العامة ==
سطر 13: سطر 13:
=== <code>classinfo</code> ===
=== <code>classinfo</code> ===
الصّنف أو النّوع المرغوب التّحقق من أنّ الكائن نسخة منه.
الصّنف أو النّوع المرغوب التّحقق من أنّ الكائن نسخة منه.
يُمكن كذلك أن يقبل صفًّا (أو عدّة صفوف) من الأصناف أو الأنواع للتحقّق من أنّ الكائن نُسخة من أحدها.


يُمكن كذلك أن يقبل [[Python/tuples|صفًّا]] (أو عدّة صفوف) من الأصناف أو الأنواع للتحقّق من أنّ الكائن نُسخة من أحدها.


== القيمة المعادة ==
== القيمة المعادة ==
* القيمة <code>True</code> إن كان الكائن نُسخة من الصّنف أو نسخة من أحد الأصناف الفرعيّة (سواء كان مُباشرًا، غير مباشر، أو وهميًّا). والقيمة <code>False</code> إن لم يكن كذلك.  
* القيمة <code>True</code> إن كان الكائن نُسخة من الصّنف أو نسخة من أحد الأصناف الفرعيّة (سواء كان مُباشرًا، أو غير مباشرٍ، أو [https://docs.python.org/3/glossary.html#term-abstract-base-class ظاهريًّا]). والقيمة <code>False</code> إن لم يكن كذلك.  


== الاستثناءات ==
== الاستثناءات ==
* يُطلق استثناء TypeError إن لم تكن قيمة المُعامل <code>classinfo</code> نوعًا أو صفّ أنواعٍ أو عدّة صفوف من هذه الصّفوف.
* يُطلق استثناء TypeError إن لم تكن قيمة المُعامل <code>classinfo</code> نوعًا أو صفّ أنواعٍ أو عدّة صفوف من هذه الصّفوف.
== أمثلة ==
== أمثلة ==
المثال التّالي يوضّح كيفيّة عمل هذه الدّالة:
المثال التّالي يوضّح كيفيّة عمل هذه الدّالة:
سطر 47: سطر 45:


== انظر أيضًا ==
== انظر أيضًا ==
* [[Python/TypeError|TypeError]].
* [[Python/class-definition|تعريف الأصناف في بايثون]].
* [[Python/class-definition|تعريف الأصناف في بايثون]].



المراجعة الحالية بتاريخ 15:55، 26 مايو 2018

تعيد الدّالة isinstance()‎ قيمة منطقيّةً تُشير إلى ما إذا كان الكائن المُعطى نسخة (instance) من الصّنف المُعطى أم لا.

البنية العامة

isinstance(object, classinfo)

المعاملات

object

الكائن المرغوب التّحقّق من كونه نسخةً من الصّنف (أو النّوع) المُعطى.

classinfo

الصّنف أو النّوع المرغوب التّحقق من أنّ الكائن نسخة منه.

يُمكن كذلك أن يقبل صفًّا (أو عدّة صفوف) من الأصناف أو الأنواع للتحقّق من أنّ الكائن نُسخة من أحدها.

القيمة المعادة

  • القيمة True إن كان الكائن نُسخة من الصّنف أو نسخة من أحد الأصناف الفرعيّة (سواء كان مُباشرًا، أو غير مباشرٍ، أو ظاهريًّا). والقيمة False إن لم يكن كذلك.

الاستثناءات

  • يُطلق استثناء TypeError إن لم تكن قيمة المُعامل classinfo نوعًا أو صفّ أنواعٍ أو عدّة صفوف من هذه الصّفوف.

أمثلة

المثال التّالي يوضّح كيفيّة عمل هذه الدّالة:

>>> isinstance(1, int) # عدد صحيح نسخة من نوع الأعداد الصّحيحة
True
>>> isinstance(1.0, int) # العدد ليس صحيحًا بل عشري
False
>>> isinstance(1.0, (int, float))
True

>>> class A: # صنف
...     pass
... 
>>> class B(A): # صنف وارث
...     pass
... 
>>> a = B() # كائن من الصّنف الوارث
>>> isinstance(a, B) # الكائن نسخة من صنفه
True
>>> isinstance(a, A) # الكائن نسخة من الصّنف الأب لصنفه
True

انظر أيضًا

مصادر