@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
版权说明:Copyright © 广州松河信息科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州松河信息科技有限公司 版权所有