الانتقال إلى المحتوى الرئيسي

أسبيتوتيرور بيثون: ما هو وكيفية إصلاح الخطأ

ال خطأ إسبيتوتيرور هو واحد من الأخطاء الأكثر شيوعا في بيثون التي يواجهها المبتدئين والمطورين ذوي الخبرة. يحدث عندما نحاول الوصول إلى سمة أو طريقة لكائن غير موجود.

يمكن أن يحدث خطأ لأسباب مختلفة. على سبيل المثال ، إذا كنا نحاول الوصول إلى سمة غير موجودة لكائن أو سمة تم حذفها. يمكن أن يحدث خطأ أيضا إذا حاولنا الوصول إلى سمة باسم خاطئ ، أو استخدام الأحرف الكبيرة الخاطئة أو الحالة الخاطئة.

مثال على السمة خطأ خطأ:

أزموتيرور:' ستر 'الكائن ليس له سمة'طول'

لإصلاح السمة خطأ خطأ ، من الضروري تحليل الكود والتأكد من أن الكائن الذي نصل إليه يحتوي على السمة الضرورية. في حالة عدم وجود السمة ، يمكنك التحقق من نوع الكائن أو استخدام بناء محاولة باستثناء للتعامل مع الاستثناء.

  1. ما هو عزوالخطأ في بايثون?
  2. تحديد وأسباب الخطأ
  3. كيفية إصلاح خطأ إمبروتيرور في بيثون
  4. استخدام كتلة محاولة باستثناء للتعامل مع خطأ إمبروتيرور
  5. التحقق من وجود سمة قبل استخدامها
  6. باستخدام وظيفة هاساتر () للتحقق من وجود سمة
  7. تغيير قيمة السمة في بايثون
  8. أمثلة شائعة لخطأ خطأ في بيثون
  9. سؤال وجواب
  10. ما هو الخطأ" عزوتيرور بيثون"?
  11. كيف يمكنني إصلاح الخطأ" إسبيتوتيرور بيثون"?
  12. ماذا يعني الخطأ " إسبيتوتيرور:" نونيتيب "الكائن ليس لديه سمة "زس' " يعني?
  13. لماذا الخطأ " إسبيتوتيرور:" إنت "الكائن لا يوجد لديه سمة "إلحاق "" تحدث?

ما هو عزوالخطأ في بايثون?

اربوتيرور في بيثون هي واحدة من الأخطاء الأكثر شيوعا التي تحدث عند محاولة الوصول إلى سمة أن كائن أو وحدة نمطية ليس لديها.

) بعد اسم الكائن أو الوحدة النمطية.

:

person.name

موجود ، سيتم إرجاع قيمته. ومع ذلك ، إذا لم تكن هذه السمة موجودة ، فسيحدث خطأ خطأ.

في معظم الأحيان ، وصفةيحدث الخطأ بسبب مثل هذه الحالات:

  • محاولة للوصول إلى سمة غير موجودة لكائن
  • الخلط بين اسم السمة (تم تحديد الاسم بشكل غير صحيح أو حالة الإدخال غير صحيحة)
  • محاولة للوصول إلى سمة فئة دون إنشاء مثيل للفئة

لحسن الحظ ، هناك عدة طرق في بيثون لتجنب خطأ إسبيتوتيرور ومعرفة سبب حدوثه:

  1. .
  2. تحقق مما إذا كان اسم السمة محددا بشكل صحيح.
  3. تأكد من أنك تقوم بالوصول إلى سمة مثيل معين من الفئة ، وليس سمة الفئة.
  4. استخدم مصحح أخطاء بايثون للحصول على معلومات خطأ أكثر تفصيلا.

الآن عليك أن تعرف ما سمةالخطأ في بيثون وكيفية تجنب هذا الخطأ ، يمكنك أن تصبح أكثر إنتاجية وكفاءة في كتابة البرامج الخاصة بك.

تحديد وأسباب الخطأ

اربوتيرور هو خطأ يحدث عند محاولة الوصول إلى سمة غير موجودة أو غير صالحة لكائن في لغة برمجة بايثون. يشير هذا الخطأ إلى أن السمة التي تحاول الوصول إليها غير محددة أو غير متوفرة لهذا الكائن.

قد تكون الأسباب المحتملة لخطأ إمبروتيرور كما يلي:

  • خطأ مطبعي في اسم السمة-غالبا ما يحدث خطأ بسبب اسم سمة مكتوب بشكل غير صحيح. إذا أدخلت الاسم بشكل غير صحيح ، فلن تتمكن بايثون من العثور على السمة المناسبة وستعرض خطأ.
  • حقوق وصول غير كافية إلى السمة-في بعض الحالات ، قد تكون السمة غير متوفرة بسبب قيود الوصول. على سبيل المثال ، إذا كانت السمة خاصة أو محمية ، فقد تتسبب محاولة الوصول إليها من الخارج في حدوث خطأ.
  • الاستخدام غير الصحيح لطريقة الفصل-في بايثون هناك طرق خاصة تسمح لك بتحديد سلوك كائن أثناء العمليات المختلفة (على سبيل المثال ، طرق__ جيتاتريبوت __و__ جيتاتر__). إذا كنت تستخدم هذه الأساليب بشكل غير صحيح أو لا تحدد لهم في فئة ، بايثون قد رمي خطأ.

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

كيفية إصلاح خطأ إمبروتيرور في بيثون

يحدث خطأ إمبروتيرور في بيثون عند محاولة الوصول إلى سمة من كائن غير موجود.

لإصلاح خطأ إمبروتيرور اتبع الخطوات التالية:

  1. تأكد من الوصول إلى الكائن بشكل صحيح. تأكد من إدخال اسم السمة وبناء الجملة بشكل صحيح.
  2. تحقق مما إذا كان الكائن قد تمت تهيئته. قد تكون بعض السمات متاحة فقط بعد تهيئة الكائن. تأكد من إنشاء مثيل للكائن أو استدعاء الطريقة المناسبة لتهيئته.
  3. تأكد من أنك قمت باستيراد جميع الوحدات الضرورية. إذا كانت السمة في وحدة نمطية أو فئة أخرى ، فتأكد من استيرادها بشكل صحيح.
  4. إذا كنت تعمل مع الفئات ، فتأكد من تحديد السمات داخل الفصل بشكل صحيح. تأكد من أنك تستخدم أسماء السمات الصحيحة وحددت أنواع البيانات الخاصة بها بشكل صحيح.
  5. تحقق مما إذا كان الكائن قد تغير بعد إنشائه. إذا كنت قد استخدمت تعليمات برمجية أخرى تعدل الكائن ، فقد يؤثر ذلك على إمكانية الوصول إلى السمات. تأكد من أنك تستخدم كائن ما يصل إلى التاريخ.

إذا كنت لا تزال غير قادر على إصلاح الخطأ ، فحاول فحص الكود الخاص به عن كثب باستخدام مصحح أخطاء أو إخراج نتائج وسيطة للحصول على معلومات أكثر تفصيلا حول خطأ إمبروتيرور.

قيمة الخطأالوصف
'وحدة' الكائن لا يوجد لديه سمة'اسم السمة'يحدث الخطأ عند محاولة الوصول إلى سمة وحدة نمطية غير موجودة.
'نوع' الكائن لا يوجد لديه سمة'اسم السمة'يحدث الخطأ عند محاولة الوصول إلى سمة من فئة غير موجودة.
'شارع' الكائن لا يوجد لديه سمة'اسم السمة'يحدث الخطأ عند محاولة الوصول إلى سمة سلسلة غير موجودة.

إصلاح خطأ إمبروتيرور قد يستغرق بعض الوقت والاختبار ، ولكن بعد الخطوات المذكورة أعلاه ، سوف تكون قادرة على إصلاحه بنجاح ومواصلة تطوير برنامج بيثون الخاص بك.

استخدام كتلة محاولة باستثناء للتعامل مع خطأ إمبروتيرور

يحدث اربوتيرور في بيثون عندما لا يكون كائن سمة أو طريقة محددة. يحدث هذا الخطأ عند محاولة الوصول إلى سمة أو طريقة لا يحتوي عليها الكائن.

للتعامل مع خطأ إمبروتيرور ومنع البرنامج من إنهاء التنفيذ ، يمكنك استخدام محاولة-باستثناء بناء. تسمح لك هذه الكتلة بتنفيذ بعض التعليمات البرمجية والتعامل مع استثناء محتمل.

مثال على استخدام المحاولة-باستثناء:

حاول:

# التعليمات البرمجية الخاصة بك حيث قد يحدث خطأ السمة

...

...

باستثناء العزوالخطأ:

# رمز معالجة الخطأ

...

...

يسمح بناء محاولة باستثناء البرنامج لاعتراض خطأ إمبروتيرور وتنفيذ رمز معين في كتلة باستثناء في حالة حدوث خطأ. داخل الكتلة باستثناء ، يمكنك تحديد الإجراءات اللازمة للتعامل مع الخطأ ، على سبيل المثال ، طباعة رسالة خطأ أو تنفيذ إجراءات بديلة.

يمكن استخدام معالج إلا أزموتيرور إذا كنت تعرف أن كائن قد يكون في عداد المفقودين سمة أو طريقة معينة. بدلا من ترك البرنامج يتوقف عن التنفيذ ، يمكنك تقديم خطة عمل للتعامل مع مثل هذه المواقف.

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

حاول:

للشخص في المجموعة:

طباعة(person.name )

باستثناء العزوالخطأ:

طباعة ("يفتقد بعض أعضاء المجموعة سمة "الاسم")

وبالتالي ، فإن استخدام كتلة المحاولة باستثناء التعامل مع خطأ السمة يتجنب مقاطعة تنفيذ البرنامج ويوفر الفرصة لتنفيذ إجراءات بديلة للتعامل مع المواقف الاستثنائية.

التحقق من وجود سمة قبل استخدامها

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

هناك عدة طرق للتحقق من وجود سمة:

  1. باستخدام وظيفة هاساتر (). تأخذ الوظيفة وسيطتين: الكائن واسم السمة. إذا كانت السمة موجودة في الكائن ، ترجع الدالة صحيح ، وإلا خطأ.
  2. باستخدام محاولة / باستثناء المشغل. يمكنك محاولة الوصول إلى السمة في كتلة محاولة والتعامل مع استثناء إسماتيوتيرور في كتلة باستثناء. في الكتلة باستثناء ، يمكنك تنفيذ الإجراءات اللازمة إذا لم يتم العثور على السمة.

مثال على استخدام وظيفة هاساتر() :

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

مثال على استخدام محاولة / باستثناء المشغل:

كودالنتيجة
طباعة ('السمة غير موجودة')إذا كان لدى أوبج سمة السمة ، فسيتم عرض قيمتها على الشاشة. خلاف ذلك ، سيتم عرض الرسالة "السمة غير موجودة".

يعتمد اختيار كيفية التحقق من وجود سمة على الموقف المحدد. إذا كان الكائن يحتوي على عدد كبير من السمات ونريد التحقق من العديد منها ، فقد يكون استخدام وظيفة هاساتر() أكثر ملاءمة. إذا كان هناك حاجة إلى الاختيار لسمة واحدة فقط ، ثم استخدام محاولة / باستثناء المشغل قد تكون أكثر قابلية للقراءة.

باستخدام وظيفة هاساتر () للتحقق من وجود سمة

في لغة برمجة بايثون ، يمكنك التحقق مما إذا كان الكائن يحتوي على سمة باستخدام وظيفة هاساتر (). تتيح لك هذه الوظيفة التحقق مما إذا كانت هناك سمة بالاسم المحدد لكائن ما.

تأخذ وظيفة هاساتر () وسيطتين: الكائن المراد التحقق منه للحصول على سمة ، واسم السمة.

مثال على استخدام وظيفة هاساتر() :

  • فئة ميكلاس:
  • مواطنه _ _ الحرف الأول__(النفس):
  • "قيمة السمة"
  • مواطنه طريقتي (ذاتي):
  • تمريرة
  • أوبج = ميكلاس()
  • إذا هاساتر (أوبج، "بلدي سمة"):
  • طباعة
  • آخر:
  • طباعة ("السمة مفقودة")

في هذا المثال ، يتم إنشاء مثيل من فئة ميكلاس أولا. ثم ، باستخدام وظيفة هاساتر () ، يتم التحقق مما إذا كانت السمة المسماة "مي_تريبوت" موجودة لكائن أوبج.

في حالة وجود السمة ، يتم إخراج قيمتها "قيمة السمة". خلاف ذلك ، يتم عرض الرسالة "السمة مفقودة".

باستخدام الدالة هاساتر () يتجنب خطأ اربوتيرور الذي يحدث عند محاولة الوصول إلى سمة غير موجودة.

تغيير قيمة السمة في بايثون

في بايثون ، السمات هي متغيرات مرتبطة بالكائنات التي تحدد حالتها أو خصائصها. في بعض الأحيان يكون من الضروري تغيير قيمة السمة لكائن معين. هناك طرق مختلفة للقيام بذلك في بايثون.

1. تغيير السمة مباشرة

طريقة سهلة لتغيير قيمة سمة من كائن هو الوصول إليه مباشرة وتعيين قيمة جديدة. على سبيل المثال:

شخص الطبقة:

ديف _ _ الحرف الأول__(الذات ، الاسم):

self.name = الاسم

شخص = شخص ("إيفان")

person.name = "بيتر"

طباعة(person.name ) # سوف الإخراج: بيتر

2. باستخدام طريقة سيتاتر ()

، مما يسمح لك بتعيين قيمة السمة بالاسم. على سبيل المثال:

شخص الطبقة:

ديف _ _ الحرف الأول__(الذات ، الاسم):

self.name = الاسم

شخص = شخص ("إيفان")

سيتاتر (شخص ، " اسم " ، "بيتر")

طباعة(person.name ) # سوف الإخراج: بيتر

3. استخدام القواميس

. على سبيل المثال:

شخص الطبقة:

ديف _ _ الحرف الأول__(الذات ، الاسم):

self.name = الاسم

شخص = شخص ("إيفان")

شخص.__ ديكت _ _ ["الاسم"] ="بيتر"

طباعة(person.name ) # سوف الإخراج: بيتر

4. استخدام الواصفات

تدعم بايثون ما يسمى "الواصفات" التي تسمح لك بتخصيص السلوك عند قراءة أو كتابة أو حذف قيمة سمة. يمكن أن تكون الواصفات مفيدة عندما تحتاج إلى إضافة منطق إضافي أو التحكم في تغييرات السمة. على سبيل المثال:

اسم الفئةواصف:

مواطنه _ _ الحصول على _ _ (النفس, مثيل, مالك):

عودة المثال._الاسم

مواطنه _ _ مجموعة _ _ (النفس ، مثيل ، قيمة):

على سبيل المثال._الاسم = القيمة

شخص الطبقة:

الاسم = ناميديسكريبتور()

شخص = شخص()

person.name = "بيتر"

طباعة(person.name ) # سوف الإخراج: بيتر

في الختام ، هناك عدة طرق لتغيير قيم السمات في بايثون ، ويعتمد الاختيار على الموقف المحدد واحتياجات المطور.

أمثلة شائعة لخطأ خطأ في بيثون

خطأ السمة هو نوع من الخطأ يحدث عندما لا يحتوي كائن على سمة (حقل أو طريقة) بالاسم المحدد. يحدث هذا الخطأ غالبا عندما نحاول الوصول إلى سمة لكائن لا يحتوي عليه.

أمثلة على الحالات الأكثر شيوعا التي يمكن أن تسبب خطأ خطأ في بيثون:

    كائن.السمة.طريقة ما()

كائن.السمة الموجودة.

    تحقق من أن الكائن ليس بلا قبل الوصول إلى السمة الخاصة به. على سبيل المثال:

    إذا كان الكائن ليس لا شيء:

    كائن.السمة الموجودة.طريقة ما()

    تأكد من أنك تقوم بالوصول إلى السمة أو الطريقة أو بناء الجملة بشكل صحيح. تحقق من الإملاء والاستخدام الصحيح للسمة.

    اصطياد وتصحيح سماتأخطاء الخطأ هو خطوة هامة في تطوير بيثون. في حالة حدوث خطأ ، يجدر فحص رسالة الخطأ بعناية وتحليل الرمز للعثور على الخطأ وإصلاحه.

    سؤال وجواب

    ما هو الخطأ" عزوتيرور بيثون"?

    يحدث خطأ" سبيتيوتيرور بيثون " عندما لا يمكن الوصول إلى سمة أو طريقة كائن لأن هذه السمة أو الطريقة غير موجودة. يمكن أن يحدث هذا عند محاولة الوصول إلى سمة لا يحتوي عليها كائن ، أو استدعاء طريقة غير محددة لهذا الكائن.