使用property函数为类创建可管理属性,fget、fset、fdel对应相应属性访问。
from math import pi
class Circle(object):
def __init__(self, radius):
self.radius = radius
def getRadius(self):
return self.radius
def setRadius(self, value):
if not isinstance(value, (int, float)):
raise ValueError('wrong type.')
self.radius = float(value)
def getArea(self):
return self.radius**2*pi
R = property(getRadius, setRadius)
c = Circle(3.2)
print(c.R)
c.R = 5.9
print(c.R)