میخوایم به تابعهایی که یک ورودی میگیرن با خروجی رشته، رفتار مشترکی اضافه کنیم: فاصلهٔ ابتدا و انتهای خروجی پاک بشه. این کار رو در decorator به نام trimmed میگذاریم تا در هر تابع تکرار نشود.
trimmed(function) باید wrapper بسازد و برگرداند. wrapper یک value میگیره، تابع اصلی رو روی اون صدا میزند و نتیجهٔ strip() رو برمیگردونه. function خود تابع هست؛ function(value) نتیجهٔ اجرای اون.
format_name و trim_demo آمادهاند. trim_demo خروجی پاکشده و نام تابع رو در یک فهرست میده. نام باید format_name بماند تا نقش wraps رو ببینی. فقط trimmed رو کامل کن. این نسخه عمداً برای یک آرگومان هست؛ تعمیم به args و *kwargs در ادامه ممکن میشه.
فعالیت شما
تابع اصلی رو اجرا کن، نتیجه رو پاک کن و با wraps نامش رو نگه دار.