getter مقدار رو میخونه و setter تغییر اون رو کنترل میکنه. با @property کاربر کلاس همچنان task.title مینویسه؛ پشت این ظاهر ساده، متد اجرا میشه. setter رو طوری کامل کن که اول با strip() فاصلههای اول و آخر متن رو برداره، بعد اگه نتیجه خالی بود ValueError بده و فقط مقدار معتبر رو در _title ذخیره کنه.
همه ورودیهای این تمرین رشته هستن و عنوان آغازین معتبره. اگه تغییر نام رد شد، عنوان قبلی باید باقی بمونه. داخل setter به self.title مقدار نده؛ این کار دوباره خود setter رو صدا زدن میکنه.
فعالیت شما
با property عنوان رو بخون و قبل از ذخیره عنوان جدید، خالی نبودنش رو بررسی کن.
مطالعهٔ این گام برای همه آزاد است
برای پاسخدادن، بررسی پاسخ، ثبت پیشرفت و استفاده از دستیار باید شرایط شرکت در فعالیتها را داشته باشید.
برای انجام فعالیت وارد شوید
فعالیتهای این بخش به اشتراک فعال نیاز دارند. تهیهٔ اشتراک
برای انجام فعالیتها ابتدا این دورههای پیشنیاز را تکمیل کنید:
کد اولیهٔ فعالیت
class Task:
def __init__(self, title):
self.title = title
@property
def title(self):
return self._title
@title.setter
def title(self, value):
# فاصلههای دو سر را حذف کن؛ مقدار خالی را نپذیر.
pass
def rename_task(first, new_title):
task = Task(first)
try:
task.title = new_title
except ValueError:
return [task.title, "invalid"]
return [task.title, "ok"]