فكر في المثال التالي حيث تثير محاولة الوصول إلى خاصية غير محددة خطأً: >>> a = someclass ()
>>> A.Property
Traceback (أحدث مكالمة أخيرة):
ملف "
الحل: الاستفادة من وظيفة hasattr () تأكد مما إذا كان الكائن يمتلك السمة المطلوبة. يتضمن هذا النهج تحديد الكائن والسمة التي ترغب في التحقق منها ، كما هو موضح أدناه:
>>> a = SomeClass() >>> a.property Traceback (most recent call last): File "إذا كانت Hasattr (A ، 'Property'): A.Property", line 1, in AttributeError: SomeClass instance has no attribute 'property'
اعتبارات بديلة
يجدر تسليط الضوء على نهج "اسأل عن المغفرة" الذي اقترحه Zweiterlinde ، والذي يعتبر اتفاقية بيثون. يستلزم ذلك محاولة الوصول إلى السمة والتعامل مع أي استثناء محتمل ، كما هو موضح في المثال التالي:
>>> a = SomeClass() >>> a.property Traceback (most recent call last): File "حاول: A.Property ما عدا نمة: # تعامل مع غياب السمة "الخاصية"", line 1, in AttributeError: SomeClass instance has no attribute 'property'
تحسين الأداء
احتمال توافر السمة. إذا كان من المتوقع أن يكون العقار موجودًا في معظم الحالات ، فقد يكون وصفه مباشرة أكثر كفاءة. ومع ذلك ، عندما يكون من المحتمل أن تكون العقار غائبًا بشكل متكرر ، قد يكون من الأفضل منع Hasattr () لمنع معالجة الاستثناءات المفرطة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3