可能重复:
Real world example about how to use property feature in python?
我对我在以下代码中看到的装饰器@property
有疑问。有人能够完全解释为什么有人会使用@property
装饰器吗?我知道@property
等同于isActive = property(isActive)
但是方法属性实际上对它的参数做了什么?如果我要从isActive
类中调用InputCell
方法,实际会发生什么?提前谢谢。
class InputCell(object):
def __init__(self, ix, iy, inputData):
self.ix = ix
self.iy = iy
self.InputData = inputData
@property
def isActive(self):
return self.InputData[self.ix][self.iy]
答案 0 :(得分:24)
这只是语法糖。它允许方法调用看起来像变量访问或赋值。
这有用的一种方法是,如果你想将之前 一个简单变量的东西改为实际用其他代码计算或验证的东西。如果您将其设为属性,则可以在不破坏任何现有代码的情况下执行此操作。另一种方法是对象属性的缓存,延迟初始化等。