فهم مفهوم Scope في لغة البرمجة Python (2023)

مقدمة

تعتبر Scope من المفاهيم الأساسية في لغة البرمجة Python، حيث تحدد إمكانية الوصول إلى الكائنات في اللغة. يجب عليك تحديد الـ scope للوصول إلى متغير معين في الشيفرة، حيث لا يمكن الوصول إليه من أي مكان في البرنامج. يُعرَّف الـ scope على أنها المنطقة البرمجية الخاصة التي تحدد رؤية المتغيرات، حيث يمكن للمبرمجين تقييد رؤيتها. يُحدد الـ scope أي متغيرات هي "مرئية". ويعتبر الـ namespace هو التعريف الفريد للمتغير أو الدالة في Python، حيث يُخبر الـ namespace مترجم Python عن اسم الكائن والموقع من حيث يحاول الوصول إليه.

قاعدة LEGB

تستخدم قاعدة LEGB للبحث عن الـ Namespaces لحل النطاق. تعني LEGB الآتي:

  • L: Local (محلي)
  • E: Enclosed (محيط)
  • G: Global (عام)
  • B: Built-in (مدمج)

تكون تسلسل LEGB مهمًا. يبحث البرنامج أولا عن المتغير في النطاق المحلي، ثم في النطاق المحيط، تلاه النطاق العام، وأخيرًا النطاق المدمج.

أنواع الـ Scope في Python

1. الـ Local Scope

المتغيرات المُعرّفة داخل الدالة تكون ضمن الـ local scope. هذه المتغيرات موجودة داخل جسم الدالة. لنفهم هذا المفهوم، لنلقي نظرة على المثال التالي:

num = 0

def demo():
    num = 1
    print("العدد هو:", num)

demo()

2. الـ Global Scope

المتغيرات التي يمكن قراءتها من أي مكان في البرنامج تُعرف بالـ global scope. يمكن الوصول إليها داخل وخارج الدوال. يُستخدم الكلمة الرئيسية global عندما نريد استخدام نفس المتغير في باقي البرنامج. على سبيل المثال:

def demo():
    print(Str)

# Global
Str = "أنت ذكي"
demo()

3. الـ Non-Local أو Enclosing Scope

المتغيرات الـ non-local هي تلك التي يتم تعريفها في الدالة المتداخلة. يعني ذلك أن المتغير يمكن ألا يكون في النطاق المحلي ولا في النطاق العام. كلمة nonlocal تُستخدم لإنشاء متغير غير محلي. كمثال:

def func_outer():
    x = "local"
    def func_inner():
        nonlocal x
        x = "nonlocal"
        print("inner:", x)

    func_inner()
    print("outer:", x)

func_outer()

4. الـ Built-in Scope

إذا لم يتم تعريف متغير في النطاق المحلي أو المحيط أو العام، يقوم Python بالبحث عنه في النطاق المدمج. كما هو موضح في المثال التالي:

from math import pi

def func_outer():
    print(pi)

func_outer()

ختاماً

في هذا المقال، تعرفنا على مفهوم الـ scope في لغة Python. وتعلمنا أربعة أنواع من الـ scope - global وlocal وenclosed وbuilt-in. كما تعلمنا متى نستخدم global و nonlocal. نأمل أن يكون هذا المفهوم قد توضح بشكل جيد.

المقالة الموصى بها

هذا هو دليلنا لفهم مفهوم الـ scope في لغة Python. ناقشنا التعريف والأنواع الأربعة للـ scope مع الأمثلة. يمكنك أيضًا مراجعة مقالاتنا الأخرى ذات الصلة للمزيد من المعرفة - (Tuples في Python، الكبسولة في Python، بدائل Python، والتوريث في Python).

References

Top Articles
Latest Posts
Article information

Author: Arielle Torp

Last Updated: 14/12/2023

Views: 6000

Rating: 4 / 5 (61 voted)

Reviews: 92% of readers found this page helpful

Author information

Name: Arielle Torp

Birthday: 1997-09-20

Address: 87313 Erdman Vista, North Dustinborough, WA 37563

Phone: +97216742823598

Job: Central Technology Officer

Hobby: Taekwondo, Macrame, Foreign language learning, Kite flying, Cooking, Skiing, Computer programming

Introduction: My name is Arielle Torp, I am a comfortable, kind, zealous, lovely, jolly, colorful, adventurous person who loves writing and wants to share my knowledge and understanding with you.