الكورس

Advertisements

Python Scope


Understand Scope

 

في البرمجة ، يحدد الـ scope name (نطاق الاسم) مساحة البرنامج التي يمكنك من خلالها الوصول إلى هذا الـ name، مثل الـ variables و functions و objects و …إلخ.

سيكون الـ name مرئيًا ويمكن الوصول إليه فقط بواسطة الكود في نطاقه، تستفيد العديد من لغات البرمجة من الـ scope لتجنب تضارب الأسماء والسلوكيات الغير متوقعة الأكثر شيوعًا.

💡 هناك نوعين من الـ scope:

  1. Global Scope (النطاق العالمي): وهى الـ names التي تحددها في هذا النطاق متاحة لجميع التعليمات البرمجية الخاصة بك.
  2. Local Scope (النطاق المحلي): وهى الـ names التي تحددها في هذا النطاق متاحة فقط أو مرئية للكود داخل النطاق.

 

1. Global Scope

 

عندما يتم إنشاء أو تعريف variable خارج أي function، فإنه يصبح Global Variable وينتمى إلى Global Scope، ويكون نطاقه في أي مكان داخل البرنامج.

💡 Global Variables متاحة من أي نطاق global و Local.

 

مثال للتوضيح:

myName = "Mohamed" # Global Variable

def printName():
  print(myName)

printName()

print(myName)

 

💡 مُلاحظة: إذا كنت تعمل بنفس اسم المتغير داخل وخارج الدالة ، فستتعامل Python معها كمتغيرين منفصلين ، أحدهما متاح في الـ Global Scope [خارج الدالة] والآخر متاح في Local Scope [داخل الدالة]، كالتالى:

myName = "Mohamed" # Global Variable

def printName():
  myName = "Hamed" # Local Variable
  print(myName) # output = Hamed

printName()

print(myName) # output = Mohamed

 

Global Keyword

 

لو عندك مُتغير داخل دالة (local) وتريد تحويله إلى مُتغير (Global) يمكنك استخدام كلمة ‘Global‘، فى هذه الحالة (أنت تطلب من Python استخدام المتغير المعرف Global بدلاً من إنشاء متغير Local).

💡 لاستخدام الكلمة، اكتب “global” متبوعًا باسم المتغير.

مثال للتوضيح:

def printName():
  global myName
  myName = "Hamed" # Now Global Variable

printName()

print(myName) # output = Hamed

💡 وتقدر تستخدم كلمة Global إذا كنت تريد إجراء تغيير على متغير Global داخل دالة، كالتالى:

myName = "Mohamed"

def printName():
  global myName
  myName = "Hamed" # Now this vaariable overwrite Previous myName variable.

printName()

print(myName) # output = Hamed

 

2. Local Scope

 

عندما تحدد متغيرًا داخل دالة ، فإن نطاقها يقع فقط داخل الدالة + يمكن الوصول إليها من النقطة التي يتم تعريفها فيها حتى نهاية الدالة وتوجد طالما أن الدالة تعمل (المصدر).

💡 Local variables لا يمكنك الوصول إليه من خارج الدالة.

 

مثال للتوضيح:

def printname():
  name = "Hamed"
  print(name)

printname()

💡 فى المثال السابق، المتغير name غير متاح خارج الدالة، ولكنه متاح لأي دالة داخل الدالة، كالتالى:

def printname():
  name = "Hamed"
  def innerfunc():
    print(name)
  innerfunc()

printname()

 

💡 الزتونة

 

  1. في البرمجة ، يحدد الـ scope name (نطاق الاسم) مساحة البرنامج التي يمكنك من خلالها الوصول إلى هذا الـ name، مثل الـ variables و functions و objects و …إلخ.
  2. هناك نوعين من الـ scope:
    1. Global Scope (النطاق العالمي): وهى الـ names التي تحددها في هذا النطاق متاحة لجميع التعليمات البرمجية الخاصة بك.
    2. Local Scope (النطاق المحلي): وهى الـ names التي تحددها في هذا النطاق متاحة فقط أو مرئية للكود داخل النطاق.
  3. يمكنك إستخدام كلمة global لتحويل المتُغير الـ local إلى global.

 



الإبلاغ عن خطأ

×

إذا وجد خطأ وتريد الإبلاغ عن هذا الخطأ، أو إذا كنت تريد تقديم اقتراح على شىء معين، فلا تتردد في إرسال بريد إلكتروني إلينا:

[email protected]

شكرًا لك على مساعدتك لنا!

Advertisements