0Pricing
Python Academy · درس

الدوال من الدرجة الأولى

مرّر الدوال وأعدها من الدوال الأخرى

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

الدوال ككائنات

في Python، الدوال كائنات من الدرجة الأولى. يمكن إسنادها إلى متغيرات، وتخزينها في هياكل البيانات، وتمريرها كوسائط، وإرجاعها من دوال أخرى — تمامًا مثل الأعداد أو السلاسل النصية.

def greet():
    return 'hi'
print(type(greet))
print(greet())

إسناد الدوال إلى المتغيرات

اسم الدالة ليس سوى مرجع. أسندوه إلى اسم آخر واستدعوه من خلال ذلك الاسم — من دون أقواس عند الإشارة إلى الدالة نفسها.

def shout(text):
    return text.upper()
yell = shout
print(yell('hello'))

الدوال في هياكل البيانات

يمكنكم تخزين الدوال في القوائم أو القواميس، ثم البحث عنها واستدعاؤها ديناميكيًا.

def add(a, b):
    return a + b
def sub(a, b):
    return a - b
ops = {'+': add, '-': sub}
print(ops['+'](10, 4))
print(ops['-'](10, 4))

تمرير الدوال كوسائط

تُسمى الدالة التي تتلقى دالة أخرى كمعلمة دالة عالية الرتبة. والدالة التي تُمرَّر هي الوسيط.

def apply(func, value):
    return func(value)
print(apply(str.upper, 'cat'))
print(apply(len, 'cat'))

يستخدم map الدوال من الدرجة الأولى

تعتمد الدوال المضمنة مثل map على تمرير الدوال. هنا تُطبَّق دالة على كل عنصر.

def square(n):
    return n * n
result = list(map(square, [1, 2, 3, 4]))
print(result)

يتلقى filter دالة اختبار

يُبقي filter العناصر التي تُرجع الدالة الممرَّرة من أجلها True. وتحدد الدالة العناصر التي ستبقى.

def is_even(n):
    return n % 2 == 0
print(list(filter(is_even, range(10))))

إرجاع دالة

يمكن للدالة إرجاع دالة أخرى. ويمكن بعد ذلك استدعاء الدالة المُرجعة بشكل منفصل.

def get_greeter():
    def greeter(name):
        return 'Hello ' + name
    return greeter
f = get_greeter()
print(f('Ada'))

الدوال كمفاتيح للفرز

تقبل sorted دالة key تحوّل كل عنصر إلى قيمة تُستخدم للترتيب.

words = ['banana', 'fig', 'cherry']
by_length = sorted(words, key=len)
print(by_length)

الدوال lambda السريعة

إن lambda دالة صغيرة مجهولة الاسم. وهي مناسبة جدًا للاستخدام لمرة واحدة كوسيط.

nums = [5, 1, 4, 2]
print(sorted(nums, key=lambda x: -x))

للدوال سمات

بما أن الدوال كائنات، فهي تحمل سمات مثل __name__ وسلسلة توثيق في __doc__.

def hello():
    'Says hello.'
    return 'hi'
print(hello.__name__)
print(hello.__doc__)

إنشاء جدول توجيه

بدمج هذه الأفكار، يمكنكم إنشاء جدول توجيه منظم يختار دالة حسب الاسم — من دون سلاسل طويلة من if/elif.

def start():
    return 'starting'
def stop():
    return 'stopping'
actions = {'start': start, 'stop': stop}
command = 'start'
print(actions[command]())

تحقق سريع

ماذا يعني أن الدوال من الدرجة الأولى في Python؟

مراجعة: الدوال من الدرجة الأولى

تعلّمتم أن الدوال في Python:

  • كائنات يمكن إسنادها وتخزينها وتمريرها وإرجاعها.
  • الدوال عالية الرتبة تتلقى دوالًا أخرى أو تُرجعها (مفتاح map وfilter وsorted).
  • تنشئ lambda دوالًا مجهولة سريعة.
  • يتيح ذلك إنشاء جداول توجيه منظمة بدلًا من الشروط الطويلة.
ops = {'double': lambda x: x * 2}
print(ops['double'](21))

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

هل درس «الدوال من الدرجة الأولى» مجاني؟

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

ماذا ستتعلم في «الدوال من الدرجة الأولى»؟

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

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

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

كم من الوقت يستغرق درس «الدوال من الدرجة الأولى»؟

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

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

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

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

  1. الدوال من الدرجة الأولى
  2. الإغلاقات والمتغيرات الحرة
  3. nonlocal والحالة القابلة للتغيير
  4. الدوال الجزئية
← العودة إلى Python Academy