نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر

نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
PY

منهج Python

دليل مرجعي شامل

كل اللغات
مدرسة البرمجة/منهج Python/نطاق المتغيرات (Global vs Local Scope)

نطاق المتغيرات (Global vs Local Scope)

scope pythonنطاق المتغيرات pythonglobal local pythonpython scope LEGB

الشرح

## نطاق المتغيرات (Scope)

يحدد **أين يمكن الوصول** إلى متغير معين.

### LEGB Rule - الترتيب في Python: - **L**ocal: داخل الدالة الحالية - **E**nclosing: الدالة الخارجية (في الدوال المتداخلة) - **G**lobal: على مستوى الملف - **B**uilt-in: المدمجة في Python مثل `print`، `len`

### Local Scope: متغير يُعرَّف داخل دالة - لا يمكن الوصول إليه من الخارج

### Global Scope: متغير يُعرَّف خارج الدوال - يمكن قراءته من الدوال

### global keyword: لتعديل متغير global من داخل دالة

الصياغة (Syntax)

syntax
1# Global variable
2count = 0
3
4def increment():
5 global count # ضروري لتعديل المتغير العام
6 count += 1
7
8increment()
9increment()
10print(count) # 2
11
12# Local variable
13def my_func():
14 local_var = "محلي"
15 print(local_var)
16
17my_func()
18# print(local_var) # ❌ خطأ! خارج نطاقها

أمثلة عملية

مثال 1: Local vs Global

Local vs Global
1name = "عالمي" # global
2
3def show_name():
4 name = "محلي" # local - يخفي العالمي
5 print("داخل الدالة:", name)
6
7show_name()
8print("خارج الدالة:", name) # العالمي لم يتغير

مثال 2: global keyword

global keyword
1total = 0
2
3def add_to_total(value):
4 global total # إشارة للمتغير العالمي
5 total += value
6
7add_to_total(10)
8add_to_total(25)
9add_to_total(15)
10print("الإجمالي:", total) # 50

نصائح احترافية

  • —**نصائح الـ Scope:**
  • —تجنب استخدام `global` قدر الإمكان - يجعل الكود أصعب فهماً
  • —الحل الأفضل: مرّر القيم كمعاملات وأرجعها بدلاً من global
  • —`nonlocal` للتعديل في الدوال المتداخلة
  • —اعتمد على مبدأ "أقل امتداد ممكن" - عرّف المتغير في أضيق نطاق ضروري

الدرس السابق

إرجاع القيم من الدوال (Return Statement)

الدرس التالي

دوال لامدا المختصرة (Lambda Functions)

نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر