@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:\Users\mengma\Desktop\1.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
聯(lián)系客服