1. مقدمة: قصة المتغير “المحلي” و”العالمي” تخيل أن لديك “مفتاحاً” لبيتك (هذا نطاق خاص بك فقط)، ولدينا “مفتاح” لبوابة الحديقة العامة (هذا نطاق عام للجميع). في البرمجة، ليس كل متغير متاحاً في كل مكان. النطاق (Scope) هو المنطقة من الكود التي يكون فيها المتغير “مرئياً” ومعروفاً.

  2. أنواع النطاقات في بايثون (بكل بساطة): أ. المتغير المحلي (Local Scope): هو المتغير الذي يتم تعريفه داخل دالة. هذا المتغير “يولد” عند استدعاء الدالة و”يموت” فور انتهائها. لا يمكن لأي كود خارج الدالة أن يراه. 

  3.                               🙁 )def my_house
     أريكة” # متغير محلي”=furniture
                              print(furniture)

                                  () my_house
    خطأ! لأن الأريكة داخل البيت فقط هنا سيحدث<–.print(furniture)#

ب. المتغير العالمي (Global Scope): هو المتغير الذي يتم تعريفه في جسم البرنامج الرئيسي (خارج أي دالة). هذا المتغير متاح للجميع، ويمكن لأي دالة أن تراه وتقرأ قيمته.

  “أكاديمية قياوي” # متغير عالمي=academy_name 

                                                                                        :() def welcome 

               الدالة تستطيع رؤيته # (” {academy _ name}مرحبا في “print(f

 

  3. قاعدة LEGB (كيف يبحث بايثون عن المتغير؟) عندما تطلب من بايثون متغيراً، فإنه         يبحث عنه بالترتيب التالي:

             1        Local: يبحث داخل الدالة أولاً.

              2        Enclosing: يبحث في الدوال المحيطة (في حالة الدوال المتداخلة).

               3         Global: يبحث في الملف الرئيسي.

               4          Built-in: يبحث في كلمات بايثون المحجوزة.

  1. الكلمة السحرية global
  2. ماذا لو أردت “تغيير” قيمة متغير عالمي من داخل الدالة؟ بايثون سيمنعك إلا إذا استخدمت كلمة global.

                                                                                               Python

                                                                                        count = 0 

                                                                               : ()def increase 

                                        نخبر بايثون أننا نقصد  # global count 

                                                                       المتغير الخارجي
                                                              count += 1

                                                                              ( ) increase
                              # ستطبع 1                                print(count)

5. نصيحة للمطور المتميز في أكاديمية قياوي: “حاول دائماً تقليل استخدام المتغيرات العالمية (Global). المبرمج المحترف يفضل المتغيرات المحلية لأنها تجعل الكود أكثر أماناً وأقل عرضة للأخطاء غير المتوقعة.”

تحدي الدرس الحادي عشر: قم بإنشاء دالة تحتوي على متغير محلي باسم secret وحاول طباعته خارج الدالة. ماذا لاحظت؟ ثم حاول استخدام كلمة global لجعل هذا المتغير متاحاً في الخارج.