Python Scope
Understand Scope
في البرمجة ، يحدد الـ scope name (نطاق الاسم) مساحة البرنامج التي يمكنك من خلالها الوصول إلى هذا الـ name، مثل الـ variables و functions و objects و …إلخ.
سيكون الـ name مرئيًا ويمكن الوصول إليه فقط بواسطة الكود في نطاقه، تستفيد العديد من لغات البرمجة من الـ scope لتجنب تضارب الأسماء والسلوكيات الغير متوقعة الأكثر شيوعًا.
💡 هناك نوعين من الـ scope:
- Global Scope (النطاق العالمي): وهى الـ names التي تحددها في هذا النطاق متاحة لجميع التعليمات البرمجية الخاصة بك.
- 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()
💡 الزتونة
- في البرمجة ، يحدد الـ scope name (نطاق الاسم) مساحة البرنامج التي يمكنك من خلالها الوصول إلى هذا الـ name، مثل الـ variables و functions و objects و …إلخ.
- هناك نوعين من الـ scope:
- Global Scope (النطاق العالمي): وهى الـ names التي تحددها في هذا النطاق متاحة لجميع التعليمات البرمجية الخاصة بك.
- Local Scope (النطاق المحلي): وهى الـ names التي تحددها في هذا النطاق متاحة فقط أو مرئية للكود داخل النطاق.
- يمكنك إستخدام كلمة global لتحويل المتُغير الـ local إلى global.
الإبلاغ عن خطأ
×إذا وجد خطأ وتريد الإبلاغ عن هذا الخطأ، أو إذا كنت تريد تقديم اقتراح على شىء معين، فلا تتردد في إرسال بريد إلكتروني إلينا:
info@albashmoparmeg.com
شكرًا لك على مساعدتك لنا!