理解
简单来说,@property是提供了一种class里属性的get方法。
调用这类函数的时候,不用加括号,相当于直接使用属性。
- 调用的例子:其实和属性的调用没有什么不同
a=Dataset()
a.data
你可以为你的属性设置私有属性之类的东西,再用@property调用,不过这好像用处没有这么大。
实例
今天读到这个代码,觉得非常巧妙,感觉理解了@property 的用处,当我想获得dataset中的data时,可以巧妙的读取我想要的东西:训练集,返回X,Y。测试集,返回X。
@property
def data(self):
if self.with_label==True:
return self.X,self.Y
else:
return self.X