@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
本文链接:http://task.lmcjl.com/news/15020.html