@property
def 方法名(self)
程式碼塊
class Rect: def __init__(self,area): self.__area = area @property def area(self): return self.__area rect = Rect(30) #直接通過方法名來存取 area 方法 print("矩形的面積是:",rect.area)執行結果為:
矩形的面積為: 30
上面程式中,使用 @property 修飾了 area() 方法,這樣就使得該方法變成了 area 屬性的 getter 方法。需要注意的是,如果類中只包含該方法,那麼 area 屬性將是一個唯讀屬性。rect.area = 90 print("修改後的面積:",rect.area)執行結果為:
Traceback (most recent call last):
File "C:UsersmengmaDesktop1.py", line 10, in <module>
rect.area = 90
AttributeError: can't set attribute
@方法名.setter
def 方法名(self, value):
程式碼塊
@area.setter def area(self, value): self.__area = value再次執行如下程式碼:
rect.area = 90 print("修改後的面積:",rect.area)執行結果為:
修改後的面積: 90
這樣,area 屬性就有了 getter 和 setter 方法,該屬性就變成了具有讀寫功能的屬性。
@方法名.deleter
def 方法名(self):
程式碼塊
@area.deleter def area(self): self.__area = 0然後執行如下程式碼:
del rect.area print("刪除後的area值為:",rect.area)執行結果為:
刪除後的area值為: 0