python中@property的用法

Property的用法

下面是一个简单的例子

Class rectangle:

 Def __init__(self,length,width):

  Self.length=length

  Self.width=width

  Self.area=length*width

这个类看似没什么问题,但是暴露出来了area这个属性。因为本来area是由长和宽决定不应该随意修改

解决方法的话,第一种可以在类里新加一个类方法。单独求面积,但是复杂的点在于如果原本代码量就很大,那么这个方法就修改起来很麻烦很复杂。

为了避免大量修改,我们可以使用@property修饰符,一个类里定义的方法一旦被@property修饰,你可以像使用属性一样使用这个方法。其实可以理解成,它是可以把一个类里的方法伪装成了这个类的一个属性。

Class rectangle:

 Def __init__(self,length,width):

  Self.length=length

  Self.width=width

  Self.area=length*width

 @property

 Def area(self):

  Return self.length * self.width

R = rectangle(3,4)

Print(rectangle.area)#与之前调用类属性一样

你可能感兴趣的:(python)