سوال شماره 4731 چندگزینه‌ای
آزمون رایگان پایتون فنی و حرفه ای
برای ایجاد یک دکوراتور در پایتون که زمان اجرای یک تابع را اندازه‌گیری کند، کدام ساختار صحیح است؟

گزینه‌ها:

  • 1. استفاده از lambda function مستقیم
  • 2. استفاده از تابع داخلی و @decorator
  • 3. تعریف کلاس با متد __call__ و اعمال آن با @ ✓ صحیح
  • 4. تعریف ماژول جداگانه برای هر دکوراتور

پاسخ صحیح:

  • تعریف کلاس با متد __call__ و اعمال آن با @

توضیحات:

برای ایجاد دکوراتورهای سفارشی در پایتون، می‌توان از دو روش استفاده کرد: تابع یا کلاس. در روش کلاس، با تعریف متد __call__ می‌توان نمونه‌ای از کلاس را به عنوان دکوراتور استفاده کرد. این روش امکان نگهداری state بین فراخوانی‌ها را فراهم می‌کند و برای موارد پیچیده‌تر مناسب است. ساختار صحیح شامل تعریف کلاس با متد __call__ و سپس اعمال آن با نماد @ قبل از تابع هدف می‌باشد.