Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

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 عن طريق إضافة بعض الأكواد الإضافية قبل وبعد استدعائها.

challenge icon

التحدي

سهل

لقد تم تزويدك بكود للدالة 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 عبر الإنترنت