nonlocal الإعلان عن متغير خارجي غير عام
آخر تحديث: 2026-09-22
nonlocal الإعلان عن متغير خارجي غير عام
nonlocal name يخبر أن name داخل جسم الدالة يشير إلى متغير في أقرب نطاق خارجي (لكنه غير عام).
| التصنيف | الكلمات المفتاحية والعبارات |
|---|---|
| النوع | كلمة مفتاحية / عبارة |
| إصدار بايثون | all |
📝 الصياغة
nonlocal name [, name]*
▶ مثال
عدّل الكود واضغط تشغيل لرؤية النتيجة في لوحة المخرجات:
المخرجات:
1 2
🏷️ كلمات مفتاحية / عبارات ذات صلة
💡 حالات ذات صلة
المزيد من الحالات قادم قريباً — تابعونا.
❓ أسئلة شائعة
Qماذا يحدث إذا عدّلت متغيرًا خارجيًا داخل دالة متداخلة دون `nonlocal`؟
Aينشئ متغيرًا محليًا بالاسم نفسه في الدالة الداخلية؛ تبقى قيمة المتغير الخارجي دون تغيير، وقد تحصل حتى على `UnboundLocalError`. لتعديل المتغير الخارجي، يجب التصريح بـ `nonlocal` أولاً.
Qهل يمكن لـ `nonlocal` أن يشير إلى متغير عام؟
Aلا. يجب أن يرتبط `nonlocal` بمتغير موجود مسبقًا في بعض نطاقات الدوال المحيطة. إذا لم يوجد مثل هذا المتغير، تحصل على `SyntaxError: no binding for nonlocal 'x' found`.
Qهل يمكن استخدام `nonlocal` و`global` معًا؟
Aنعم، ولكن فقط لأسماء مختلفة. لا يمكن التصريح عن الاسم نفسه كـ `global` و`nonlocal` معًا؛ فعل ذلك يُحدث `SyntaxError`.