Nested Functions
الدرس 2 من 12 في دورة المزخرفات في Python على Coddy.
قبل أن نتعمق في المزخرفات (decorators)، نحتاج إلى فهم بعض المفاهيم المهمة المتعلقة بدوال بايثون.
في بايثون، يمكننا تضمين دالة داخل أخرى، وهو ما يُعرف أيضاً بالدالة المتداخلة (nested function).
على سبيل المثال،
def outer_function():
print("This is the outer function.")
def inner_function():
print("This is the inner function.")
inner_function()
في هذا المثال، تحتوي outer_function على دالة متداخلة تسمى inner_function.
عند استدعاء outer_function، ستقوم أولاً بطباعة "This is the outer function." ثم تستدعي inner_function. ستقوم inner_function بعد ذلك بطباعة "This is the inner function."
لاحظ أنه لا يمكن استدعاء inner_function إلا من داخل outer_function.
إذا حاولت استدعاء inner_function خارج outer_function، فستحصل على خطأ NameError يشير إلى أن inner_function غير معرفة.
التحدي
سهلاكتب دالة تسمى greeting_generator تأخذ اسماً كمعامل (argument) وتعيد رسالة ترحيب تتضمن هذا الاسم.
يجب أن يتم إنشاء رسالة الترحيب بواسطة دالة متداخلة (nested function) تسمى get_greeting، والتي تأخذ الاسم كمعامل وتعيد سلسلة نصية تقول "Hello, [name]!".
إليك مثال على كيفية عمل الدالة:
>>> greeting = greeting_generator("Alice")
>>> greeting
"Hello, Alice!"
>>> greeting = greeting_generator("Bob")
>>> greeting
"Hello, Bob!"
القيود
- يجب عليك استخدام دالة متداخلة تسمى
get_greetingلإنشاء رسالة الترحيب. - يجب أن تتضمن رسالة الترحيب الاسم الذي تم تمريره إلى
greeting_generator.
جرّب بنفسك
جميع دروس المزخرفات في Python
تدرّب بنفسك: مترجم Python عبر الإنترنت