问题
Possible Duplicate:
Real world example about how to use property feature in python?
I have a question about the decorator @property
that I've seen in the following code. Could someone be kind enough to completely explain why someone would use the @property
decorator? I know @property
is equivalent to isActive = property(isActive)
but what does the method property actually do to it's parameter? If I were to call the isActive
method from the InputCell
class what would actually happen? Thanks in advance.
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]
回答1:
It's simply syntactic sugar. It allows a method call to look like a variable access or assignment.
One way this can be useful is if you want to change something that previously was a simple variable to something that's actually computed or validated with other code. If you make it a property, you can do this without breaking any existing code. Another way is for caching, lazy initialization, etc., of object attributes.
来源:https://stackoverflow.com/questions/11513705/python-property-decorator