0Pricing
Learn AI with Python · درس

Decorators

تعلّموا استخدام Decorators لتعديل الدوال أو توسيعها

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

مقدمة إلى المزخرفات

مقدمة إلى المزخرفات

المزخرفات ميزة قوية في Python تتيح لك تعديل سلوك الدوال أو الأساليب. وغالبًا ما تُستخدم لإضافة وظائف إلى الدوال من دون تعديل شيفرتها.

في هذا الدرس، ستتعرّف على ماهية المزخرفات، وكيفية استخدامها، وكيفية إنشاء مزخرفاتك الخاصة.

Decorators — رسم توضيحي 1

ما المزخرف؟

ما المزخرف؟

المزخرف هو دالة تأخذ دالة أخرى كإدخال وتعيد دالة جديدة بوظائف إضافية. وغالبًا ما يُستخدم مع الصياغة @decorator_name.

# Basic example of a decorator
def decorator(func):
    def wrapper():
        print("Before the function call")
        func()
        print("After the function call")
    return wrapper

@decorator
def say_hello():
    print("Hello!")

say_hello()

كيف تعمل المزخرفات

كيف تعمل المزخرفات

عند استخدام مزخرف، تستبدل Python الدالة الأصلية بالدالة المغلّفة التي يعيدها المزخرف.

# How decorators work
def decorator(func):
    def wrapper():
        print("Wrapper called")
        func()
    return wrapper

@decorator
def greet():
    print("Greetings!")

print(greet.__name__)  # Outputs: wrapper
greet()

استخدام المزخرفات مع المعاملات

استخدام المزخرفات مع المعاملات

يمكن للمزخرفات التعامل مع الدوال التي تأخذ معاملات، وذلك باستخدام *args و**kwargs في الدالة المغلّفة:

# Decorator for functions with arguments
def decorator(func):
    def wrapper(*args, **kwargs):
        print(f"Arguments: {args}, {kwargs}")
        return func(*args, **kwargs)
    return wrapper

@decorator
def add(a, b):
    return a + b

print(add(3, 5))

تسلسل مزخرفات متعددة

تسلسل مزخرفات متعددة

يمكنك استخدام عدة مزخرفات مع دالة واحدة. وتُطبّق بالترتيب الذي تظهر به، من الأعلى إلى الأسفل:

# Chaining multiple decorators
def decorator1(func):
    def wrapper():
        print("Decorator 1")
        func()
    return wrapper

def decorator2(func):
    def wrapper():
        print("Decorator 2")
        func()
    return wrapper

@decorator1
@decorator2
def greet():
    print("Hello!")

greet()

إنشاء Decorators ذات معاملات

إنشاء Decorators ذات معاملات

تتلقى Decorators ذات المعاملات وسائط، مما يتيح توفير وظائف أكثر مرونة:

# Parameterized decorator
def repeat(times):
    def decorator(func):
        def wrapper(*args, **kwargs):
            for _ in range(times):
                func(*args, **kwargs)
        return wrapper
    return decorator

@repeat(3)
def say_hello():
    print("Hello!")

say_hello()

حالات الاستخدام الشائعة لـ Decorators

حالات الاستخدام الشائعة لـ Decorators

تُستخدم Decorators عادةً في ما يلي:

  • تسجيل استدعاءات الدوال والوسائط الخاصة بها.
  • قياس مدة تنفيذ الدوال.
  • التحكم في الوصول، مثل التحقق من أذونات المستخدمين.
  • تخزين النتائج مؤقتًا لتحسين الأداء.

Decorators المضمّنة في Python

Decorators المضمّنة في Python

توفر Python بعض Decorators المضمّنة، ومنها:

  • @staticmethod: تُعرّف طريقة ثابتة.
  • @classmethod: تُعرّف طريقة فئة.
  • @property: تُعرّف طريقة خاصية.

الأخطاء الشائعة في استخدام المزخرفات

الأخطاء الشائعة في استخدام المزخرفات

إليك بعض الأخطاء التي ينبغي تجنّبها:

  • عدم الحفاظ على اسم الدالة الأصلية وسلسلة توثيقها (استخدم functools.wraps).
  • استخدام المزخرفات دون حاجة في المهام البسيطة.
  • نسيان معالجة المعاملات في الدالة المغلّفة.

ماذا تعلمنا؟

ماذا تعلمنا؟

في هذا الدرس، تعلّمت:

  • ما decorators وكيف تعمل في Python.
  • كيفية إنشاء واستخدام decorators أساسية ومُعامَلة ومتسلسلة.
  • حالات الاستخدام الشائعة وdecorators المضمّنة في Python.

أحسنت! لننتقل إلى الموضوع التالي.

Decorators — رسم توضيحي 11

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

هل درس «Decorators» مجاني؟

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

ماذا ستتعلم في «Decorators»؟

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

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

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

كم من الوقت يستغرق درس «Decorators»؟

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

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

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

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

  1. Decorators
  2. Generators
  3. Context Managers ‏(عبارات with)
  4. Comprehensions ‏(القوائم والمجموعات والقواميس)
  5. Iterators وIterables
← العودة إلى Learn AI with Python