Python Syntax
الدرس 6 من 12 في دورة المزخرفات في Python على Coddy.
في الدرس السابق، رأينا كيفية إنشاء مزخرفات الدوال (function decorators)، ومع ذلك، توفر بايثون طريقة أكثر أناقة لتحقيق هذه الوظيفة باستخدام رمز @.
على سبيل المثال،
def my_decorator(func):
def wrapper():
print("Before function is called.")
func()
print("After function is called.")
return wrapper
@my_decorator
def my_function():
print("Inside my_function.")عند تشغيل my_function()، سنرى مخرجات مثل هذه:
Before function is called.
Inside my_function.
After function is called.يوضح هذا أن دالة المزخرف my_decorator كانت قادرة على تعديل سلوك my_function عن طريق إضافة بعض الأكواد الإضافية قبل وبعد استدعائها.
التحدي
سهللقد تم تزويدك بكود للدالة add.
مهمتك هي كتابة مزخرف دالة (function decorator) يسمى debug، كما في الدرس السابق، ولكن مع بعض الإضافات:
- قم بإضافة مزخرف الدالة
debugإلىaddباستخدام رمز@. - يجب أن تدعم دالة debug وسائط الدالة (function arguments).
لدعم دالة تحتوي على وسائط في المزخرف،
def my_decorator(func):
def wrapper(a, b):
print("Before function is called.")
func(a, b)
print("After function is called.")
return wrapperمثال:
لاستدعاء الدالة add(2, 3)، يجب طباعة ما يلي،
Calling add with arguments (2, 3)
add returned: 5جرّب بنفسك
# اكتب الكود هنا
def add(a, b):
return a + bجميع دروس المزخرفات في Python
تدرّب بنفسك: مترجم Python عبر الإنترنت