properties
Properties یک راه برای سفارشی کردن دسترسی به ویژگی های نمونه فراهم می کند. آنها با قرار دادن دکوراتور املاک در بالا یک روش ایجاد می شوند، بدین معنا که هنگامی که نمونه به همان نامی که روش دسترسی دارد، به آن متصل شود، روش به جای آن نامیده می شود. یک استفاده مشترک از یک ملک این است که یک ویژگی را فقط خواندنی بسازیم. مثال:
class Pizza:
def __init__(self, toppings):
self.toppings = toppings
@property
def pineapple_allowed(self):
return False
pizza = Pizza(["cheese", "tomato"])
print(pizza.pineapple_allowed)
pizza.pineapple_allowed = True
خروجی:
>>>
False
AttributeError: can't set attribute
>>>
خواص را می توان با تعریف توابع setter / getter تنظیم کرد. تابع seter مقدار ارزش متناظر را تعیین می کند. دریافت کننده ارزش می گیرد. برای تعریف یک تنظیم کننده، شما باید از دکوراتور با همان نام مالکیت استفاده کنید، به دنبال یک نقطه و کلمه کلیدی setter. همین امر برای تعریف توابع getter نیز کاربرد دارد. مثال:
class Pizza:
def __init__(self, toppings):
self.toppings = toppings
self._pineapple_allowed = False
@property
def pineapple_allowed(self):
return self._pineapple_allowed
@pineapple_allowed.setter
def pineapple_allowed(self, value):
if value:
password = input("Enter the password: ")
if password == "Sw0rdf1sh!":
self._pineapple_allowed = value
else:
raise ValueError("Alert! Intruder!")
pizza = Pizza(["cheese", "tomato"])
print(pizza.pineapple_allowed)
pizza.pineapple_allowed = True
print(pizza.pineapple_allowed)
خروجی:
>>>
False
Enter the password: Sw0rdf1sh!
True
بهترین دوره ی عمرم بود همه چیزش در بالاترین سطح بودش و برعکس دوره هایی که تو سایتای دیگه هست با مثال های پایه و ساده و دور از ریاضیات پیچیده اموزش دادین ممنونم واقعا ک بصورت رایگان همچین دوره ایی رو منتشر کردین
خواهش می کنم نظر لطفتونه امیدوارم که براتون مفید واقع شده باشه و ازش بتونید استفاده لازم رو ببرید
سلام خسته نباشین
آموزشتون عالی بود و خیلی بهم کمک کرد، موفق باشین ❤
فقط یک سوال داشتم، اینکه دوره مقدماتی پایتون همین ۵۱ قسمت بود ؟
یا ادامهش رو بعدا میزارین ؟
سلام خواهش می کنم امیدوارم مفید واقع شده باشه ، خیر دوست عزیز ادامه این سری در حال حاضر در دوره پیشرفته هستش می تونید ادامه بدید