جاري التحميل...

غلاف حول الدالة

تريد أن يُكتب سطر واحد قبل التحية. تستدعي greet مع kai. السطر الأول على الشاشة سيكون door. السطر الثاني سيكون hi kai.

السطر @announce يضع wrapped حول greet، و print يكتب سطرين

python
def announce(fn):
    def wrapped(name):
        print("door")
        return fn(name)
    return wrapped

@announce
def greet(name):
    return "hi " + name

print(greet("kai"))

تعرض الشاشة سطرين. كتبتَ print(greet("kai")). هذا التشغيل لا يبدأ عند سطر return داخل greet. السطر @announce يضع wrapped حول greet، فيعمل wrapped أولًا عندما تستدعي greet("kai"). print داخل wrapped يكتب door، وهذا هو السطر الأول. بعد ذلك ينفّذ wrapped التحية، وتعيد التحية hi kai. print الذي حول greet("kai") يكتب hi kai، وهذا هو السطر الثاني. انتهى البرنامج. لا يوجد سطر ثالث. None ليس سطرًا ثالثًا.

door ليس التحية. التحية هي hi kai. لو لم يكن السطر @announce فوق greet لكتب print(greet("kai")) سطرًا واحدًا هو hi kai فقط. هذا البرنامج ليس ذاك. في هذا البرنامج يوجد @announce، فالسطر الأول door والسطر الثاني hi kai.

يمكنك الآن أن تضع غلافًا حول دالة ليعمل سطر واحد قبل سطر الدالة نفسها. تعرض الشاشة door ثم hi kai. الصفحة التالية تكتب نوعًا بجانب اسم.

سطر واحد قبل التحية

السطر @announce فوق greet يجعل print داخل wrapped يكتب door أولًا. بعده يكتب print(greet("kai")) سطر hi kai. تعرض الشاشة سطرين: door ثم hi kai. الصفحة التالية تكتب نوعًا بجانب اسم.

🧠 اختبر معرفتك

جاهز للبدء

اختبر معرفتك

تحدى نفسك مع هذا الاختبار التفاعلي واكتشف مدى فهمك للموضوع

❓
5
الأسئلة
🎯
70%
للنجاح
♾️
∞
الوقت
🔄
∞
المحاولات

📝 التعليمات

  • اقرأ كل سؤال بعناية
  • اختر أفضل إجابة لكل سؤال
  • يمكنك إعادة الاختبار عدة مرات كما تريد
  • سيتم عرض تقدمك في الأعلى