"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > ما هو الفرق بين الوظائف المتداخلة والإغلاق في بيثون

ما هو الفرق بين الوظائف المتداخلة والإغلاق في بيثون

نشر في 2025-05-03
تصفح:815

What\'s the Difference Between Nested Functions and Closures in Python?

لا تعتبر غير المساواة Make_printer (MSG): طابعة DEF (): طباعة (MSG) إرجاع طابعة

هنا ، وظيفة الطابعة هي وظيفة متداخلة داخل Make_printer. إنه إغلاق لأنه يشير إلى أن المتغير المحلي MSG بعد أن عاد make_printer. يتم الحفاظ على هذا المرجع حتى بعد الخروج من النطاق المرفق. طابعة def (msg = msg): طباعة (MSG) Return Printer

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

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3