0Pricing
Python Academy · درس

القيم المُعادة ونطاق الرؤية

افهم عبارات return ونطاق المتغيرات، محلياً وعالمياً

القيم المُعادة ونطاق الرؤية درس مجاني في Python Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Python Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Python Academy 4 دروس في المجموع.

مقدمة

يُعد فهم عبارات return ونطاق المتغيرات أمرًا أساسيًا لكتابة دوال Python يمكن التنبؤ بسلوكها وخالية من الأخطاء.

عبارة return

تخرج `return expr` من الدالة وترسل expr إلى المستدعي. وترسل return من دون قيمة القيمة None.
def double(x):
    return x * 2
print(double(5))

الإرجاع المبكر

لا مشكلة في استخدام عبارات return متعددة؛ فأول عبارة يتم الوصول إليها تُخرج الدالة. ويفيد ذلك في عبارات الحراسة.
def abs_val(x):
    if x < 0:
        return -x
    return x
print(abs_val(-7))

النطاق المحلي

تكون المتغيرات التي تُنشأ داخل الدالة محلية، ولا وجود لها خارجها.
def f():
    x = 10
    print(x)
f()
# print(x)  # NameError

النطاق العام

تكون المتغيرات المعرّفة على مستوى الوحدة عامة. ويمكن للدوال قراءة المتغيرات العامة من دون التصريح بها.
name = 'Alice'
def greet():
    print('Hello', name)  # reads global
greet()

الكلمة المفتاحية global

تتيح `global x` داخل الدالة الكتابة إلى متغير عام. استخدموها باعتدال، لأنها تجعل فهم الشيفرة أصعب.
counter = 0
def increment():
    global counter
    counter += 1
increment()
print(counter)

الكلمة المفتاحية nonlocal

تتيح `nonlocal x` في دالة متداخلة الكتابة إلى متغير في نطاق محيط، لكنه ليس نطاقًا عامًا.
def make_counter():
    count = 0
    def inc():
        nonlocal count
        count += 1
        return count
    return inc
c = make_counter()
print(c(), c())

قاعدة LEGB

تحل Python الأسماء بالترتيب الآتي: محلي → محيط → عام → مضمَّن. وتُعرف هذه بقاعدة LEGB.
x = 'global'
def outer():
    x = 'enclosing'
    def inner():
        print(x)  # enclosing
    inner()
outer()

إرجاع قيم متعددة

تعيد `def f(): return 1, 2, 3` قيمة tuple. ويفك `a, b, c = f()` حزمها.
def stats(lst):
    return min(lst), max(lst), sum(lst)/len(lst)
lo, hi, avg = stats([1,2,3,4,5])
print(lo, hi, avg)

إرجاع الدوال (Closures)

يمكن للدالة إرجاع دالة أخرى. وتتذكر الدالة الداخلية النطاق الخارجي، وهذا ما يُسمى closure.
def make_adder(n):
    def adder(x):
        return x + n
    return adder
add5 = make_adder(5)
print(add5(3))

None مقابل غياب return

أعيدوا None صراحةً دائمًا عند الإشارة إلى عدم وجود قيمة. ويُعد الاعتماد على None الضمنية صحيحًا، لكن التصريح بها أوضح.
def find(lst, val):
    for i, x in enumerate(lst):
        if x == val:
            return i
    return None
print(find([1,2,3], 9))

تحقق سريع

في قاعدة LEGB، ما النطاق الذي يُفحَص أخيرًا؟

مراجعة

تخرج return من الدالة مع قيمة. ولا تتسرب المتغيرات المحلية إلى الخارج. استخدموا global أو nonlocal للكتابة إلى النطاقات الخارجية. وترتيب LEGB هو: محلي، محيط، عام، مضمَّن.

تابعوا التقدم

أحسنتم! انتقلوا إلى الدرس التالي لمواصلة تقدمكم.

الأسئلة الشائعة

هل درس «القيم المُعادة ونطاق الرؤية» مجاني؟

نعم — نص درس «القيم المُعادة ونطاق الرؤية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Python Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Python Academy 4 دروس في المجموع.

ماذا ستتعلم في «القيم المُعادة ونطاق الرؤية»؟

افهم عبارات return ونطاق المتغيرات، محلياً وعالمياً تتمرن على Python Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Python Academy؟

لا تُشترط خبرة سابقة. Python Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «القيم المُعادة ونطاق الرؤية»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Python Academy هذا؟

نعم. كل درس في Python Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. تعريف الدوال واستدعاؤها
  2. الوسائط الافتراضية والمسماة
  3. args وkwargs
  4. القيم المُعادة ونطاق الرؤية
← العودة إلى Python Academy