لماذا يمكن إعادة ربط Super () الكود
في Python 3.x ، يمكن استدعاء وظيفة Super () بدون وسيطات للوصول إلى طرق الفئة الفائقة. يتم تمكين هذا السلوك من خلال خدعة سحرية في وقت الترجمة التي تحدد علاقة بين Super () وفئة الاتصال. ومع ذلك ، إذا كان الاسم الفائق ينتعش إلى متغير مختلف (Super_ في المثال) ، يتم كسر هذا الاتصال.
السبب هو D.R.Y. (لا تكرر نفسك) مبدأ. إن تسمية فئة الاتصال بشكل صريح في مكالمات إلى الفئة الفائقة تنتهك هذا المبدأ ويزيد من خطر إعادة توطين القضايا. بالإضافة إلى ذلك ، فإن استخدام Decorators الذي يغير اسم الفصل يعطل أيضًا الإشارة إلى كائن الفئة الأصلي. تشير الخلية إلى كائن الفئة الأصلي ، مما يضمن أن Super () يمكنه دائمًا الوصول إلى الفئة الفائقة الصحيحة ، حتى لو تم انتعاش الاسم الفائق.
في حين أن هذا السلوك قد يبدو مفاجئًا ، فمن المهم أن نلاحظ أن Super () غالبًا ما يتم إساءة استخدامه. من خلال تبسيط بناء جملة المكالمات وتجنب مخاطر العودية اللانهائية ، يساعد التنفيذ المحدث في منع الأخطاء. هذا لأنه يتم إنشاء الخلية عند استخدام فئة Super أو ضمن الطريقة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3