حالت آفلاین — محتوا از حافظهٔ کش نمایش داده می‌شود
آموزش برنامه‌نویسی با پایتون؛ قسمت دوم: حل مسئله

تمرین دکوراتور در پایتون؛ مرتب کردن خروجی تابع

۶. تابع‌های پایتون و پروژه گزارش نمره‌ها · 0٪

می‌خوایم به تابع‌هایی که یک ورودی می‌گیرن با خروجی رشته، رفتار مشترکی اضافه کنیم: فاصلهٔ ابتدا و انتهای خروجی پاک بشه. این کار رو در decorator به نام trimmed می‌گذاریم تا در هر تابع تکرار نشود.

trimmed(function) باید wrapper بسازد و برگرداند. wrapper یک value می‌گیره، تابع اصلی رو روی اون صدا می‌زند و نتیجهٔ strip() رو برمی‌گردونه. function خود تابع هست؛ function(value) نتیجهٔ اجرای اون.

format_name و trim_demo آماده‌اند. trim_demo خروجی پاک‌شده و نام تابع رو در یک فهرست می‌ده. نام باید format_name بماند تا نقش wraps رو ببینی. فقط trimmed رو کامل کن. این نسخه عمداً برای یک آرگومان هست؛ تعمیم به args و *kwargs در ادامه ممکن می‌شه.

فعالیت شما

تابع اصلی رو اجرا کن، نتیجه رو پاک کن و با wraps نامش رو نگه دار.

مطالعهٔ این گام برای همه آزاد است

برای پاسخ‌دادن، بررسی پاسخ، ثبت پیشرفت و استفاده از دستیار باید شرایط شرکت در فعالیت‌ها را داشته باشید.

برای انجام فعالیت وارد شوید

برای انجام فعالیت‌ها ابتدا این دوره‌های پیش‌نیاز را تکمیل کنید:

کد اولیهٔ فعالیت

from functools import wraps

def trimmed(function):
    pass

@trimmed
def format_name(value):
    return "  " + value + "  "

def trim_demo(value):
    return [format_name(value), format_name.__name__]