• 0

كيف أتأكد من توفر كائن على خاصية في Python؟

هل  من طريقة للتأكد أن كائن -object- يتوفر على خاصية ما -attribute- على لغة البرمجة Python، مثال:

>>> a = SomeClass()
>>> a.someProperty = value
>>> a.property
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: SomeClass instance has no attribute 'property'

كيف أتأكد أن a تتوفر على خاصية property؟ حتى لا أحصل على خطأ كما هو مبين في الكود أعلاه؟

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


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

على لغة Python توجد دالة hasattr  والتي من شأنها التأكد من توفّر كائن على خاصية ما، أي هل تمّ تعريف الخاصية عند إنشاء الكلاس الأم ، وفي ما يلي شرح وإعطاء بعض الأمثلة لكيفية استخدامها:

  • غالبا ما تستخدم هذه الدالة مع دالة التأكد if والتي يكون ناتجها من نوع boolean أي True أو False.
if hasattr(a, 'property'):
    a.property

في المثال التالي، يتم إنشاء كائن من كلاس معينة ثم التأكد من وجود الخاصية بهذا الكائن، مع إبراز لقيمة boolean المحصّل عليها: 

>>> class A(object):
...   foo = 1
...
>>> class B(A):
...   pass
...
>>> b = B()
>>> hasattr(b, 'foo')
True
>>> 'foo' in b.__dict__
False

 

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


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

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

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

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


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

تسجيل الدخول

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


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