Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!

This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!

Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount

الإغلاقات


الدوال المغلقة (Closure)

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

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

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

يعمل هذا بشكل جيد حيث يمكن لدالة 'data_transmitter' الوصول إلى 'message'. لإظهار استخدام الكلمة المفتاحية "nonlocal"، يعتبر هذا المثال:

بدون استخدام الكلمة المفتاحية nonlocal، سيكون الناتج "3 9"، بينما باستخدامها نحصل على "3 3"، وهو ما يعني أن قيمة المتغير "number" تتغير.

الآن، ماذا عن إرجاع كائن الدالة بدلاً من استدعاء الدالة المتداخلة من داخلها. (تذكر أن الدوال نفسها تعتبر كائنات. (إنه بايثون.))

ونقوم باستدعاء الدالة كما يلي:

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

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

أيضاً، المُزخرفات (Decorators) في بايثون تعتمد بشكل كبير على الدوال المغلقة.

Exercise

قم بعمل حلقة متداخلة ودالة مغلقة في بايثون لإنشاء دوال للحصول على عدة دوال للضرب باستخدام الدوال المغلقة. أي باستخدام الدوال المغلقة، يمكن إنشاء دوال لإنشاء الدالّة multiply_with_5() أو الدالّة multiply_with_4() باستخدام الدوال المغلقة.

This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!

Previous Tutorial Next Tutorial Take the Test
Copyright © learnpython.org. Read our Terms of Use and Privacy Policy