Decorators Usage
الدرس 5 من 12 في دورة المزخرفات في Python على Coddy.
في لغة بايثون، يُعد الـ decorator (المُزخرف) دالة تأخذ دالة أخرى كمدخل وتوسع سلوك الدالة المدخلة دون تعديل كودها بشكل صريح. تُعد المُزخرفات وسيلة قوية لتعديل أو تحسين سلوك الدوال بطريقة مرنة وقابلة لإعادة الاستخدام.
إليك مثال على دالة مُزخرف بسيطة:
def my_decorator(func):
def wrapper():
print("Before the function is called.")
func()
print("After the function is called.")
return wrapperفي هذا المثال، تأخذ الدالة my_decorator دالة أخرى func كمدخل وتُعيد دالة جديدة تسمى wrapper.
تضيف الدالة wrapper بعض السلوك قبل وبعد استدعاء الدالة func.
التحدي
سهلاكتب دالة مزخرف (decorator) تسمى debug تأخذ دالة func كمدخل وتعيد دالة جديدة تطبع اسم func والقيمة التي تعيدها func في كل مرة يتم استدعاؤها فيها.
للحصول على اسم
func، استخدمfunc.__name__.
إليك مثال على استخدام مزخرف debug:
def hello():
return "Hello"
debug_hello = debug(hello)
debug_hello()في هذا المثال، نستخدم مزخرف debug لتغليف دالة hello وإنشاء دالة جديدة تسمى debug_hello. عندما نستدعي debug_hello()، سيقوم المزخرف بطباعة:
Calling hello
hello returned: Helloيمكنك افتراض أن جميع الدوال الممرة إلى
debugهي دوال بدون وسائط (no-arguments functions).
جرّب بنفسك
جميع دروس المزخرفات في Python
تدرّب بنفسك: مترجم Python عبر الإنترنت