چطور دکوراتور property در پایتون کار میکند؟
How does the property decorator work in Python?
در پایتون، دکوراتور property دقیقا چطور کار میکند و چه کاربردهایی دارد؟
دکوراتور property در پایتون به شما این امکان رو میده که متدهای کلاس رو به عنوان ویژگی (attribute) استفاده کنید، بدون اینکه نیاز به تغییرات در نحوهی دسترسی به اونها داشته باشید. این دکوراتور به شما اجازه میده که روشهای getter، setter و deleter رو برای یک ویژگی مشخص کنید.
برای استفاده از property، شما ابتدا یک متد رو تعریف میکنید که با نام ویژگی شما هماهنگ هست و با دکوراتور @property تزئین میکنید. این متد به عنوان یک getter عمل میکنه و وقتی شما به ویژگی دسترسی پیدا میکنید، این متد اجرا میشه.
سپس، اگر نیاز دارید که مقدار ویژگی رو تغییر بدید، باید متد دیگری با نام setter تعریف کنید و با دکوراتور @نام_ویژگی.setter تزئینش کنید. همینطور، اگر میخواهید ویژگی رو حذف کنید، باید متدی با دکوراتور @نام_ویژگی.deleter تعریف کنید.
یک مثال ساده برای روشنتر شدن قضیه:
class MyClass: def __init__(self, value): self._value = value @property def value(self): # Getter method return self._value @value.setter def value(self, new_value): # Setter method if new_value < 0: raise ValueError("Value must be non-negative") self._value = new_value @value.deleter def value(self): # Deleter method del self._value
در این مثال، ما یک ویژگی به نام value داریم که با دکوراتور property ساخته شده. متد value که با @property تزئین شده، مقدار فعلی ویژگی رو برمیگردونه. متد value که با @value.setter تزئین شده، اجازه میده تا مقدار جدیدی برای ویژگی تعیین کنیم و مطمئن میشویم که مقدار جدید منفی نیست. همچنین، متد value که با @value.deleter تزئین شده، امکان حذف ویژگی رو فراهم میکنه.
استفاده از property به شما کمک میکنه که کد تمیزتر و قابل مدیریتی داشته باشید و کنترل بهتری روی دسترسی و تغییر مقادیر ویژگیهای کلاسهاتون داشته باشید.