لقد رأينا سابقًا كيفية إنشاء ملفوظيفة متداخلة في بايثون.
إذا قمت بإرجاع دالة متداخلة من دالة ، فإن هذه الوظيفة المتداخلة لها حق الوصول إلى المتغيرات المحددة في هذه الوظيفة ، حتى إذا لم تعد هذه الوظيفة نشطة.
هنا مثال بسيط على العداد.
def counter():
count = 0
<span style="color:#66d9ef">def</span> <span style="color:#a6e22e">increment</span>():
nonlocal count
count <span style="color:#f92672">=</span> count <span style="color:#f92672">+</span> <span style="color:#ae81ff">1</span>
<span style="color:#66d9ef">return</span> count
<span style="color:#66d9ef">return</span> increment
increment = counter()
print(increment()) # 1
print(increment()) # 2
print(increment()) # 3
نعود الincrement()
الداخلية ، والتي لا تزال قادرة على الوصول إلى حالةcount
متغير على الرغم من أنcounter()
انتهت الوظيفة.
المزيد من دروس بيثون:
- مقدمة في بايثون
- تثبيت Python 3 على macOS
- تشغيل برامج بايثون
- بايثون 2 مقابل بايثون 3
- أساسيات العمل مع بايثون
- أنواع بيانات بايثون
- مشغلي بايثون
- سلاسل بايثون
- بايثون منطقية
- أرقام بايثون
- بايثون ، قبول المدخلات
- بيانات التحكم في بايثون
- قوائم بايثون
- Python Tuples
- مجموعات بايثون
- قواميس بايثون
- وظائف بايثون
- كائنات بايثون
- حلقات بايثون
- وحدات بايثون
- فئات بايثون
- مكتبة بايثون القياسية
- تصحيح أخطاء بايثون
- نطاق متغيرات بايثون
- بايثون ، اقبل الحجج من سطر الأوامر
- العودية بيثون
- وظائف بايثون المتداخلة
- وظائف بايثون لامدا
- إغلاق بايثون
- بيئات Python الافتراضية
- استخدم GoPro ككاميرا ويب عن بعد باستخدام Python
- Python ، كيفية إنشاء قائمة من سلسلة
- ديكورات بايثون
- دوكسترينغ بايثون
- استبطان بيثون
- شروح بايثون
- Python ، كيفية سرد الملفات والمجلدات في دليل
- Python ، كيفية التحقق مما إذا كان الرقم فرديًا أم زوجيًا
- Python ، كيفية الحصول على تفاصيل ملف
- Python ، كيفية التحقق من وجود ملف أو دليل
- استثناءات بايثون
- Python ، كيفية إنشاء دليل
- Python ، كيفية إنشاء ملف فارغ
- Python ، عبارة `with`
- Python ، أنشئ طلب شبكة
- Python ، تثبيت حزم الطرف الثالث باستخدام `pip`
- بايثون ، اقرأ محتوى الملف