property函数的两种使用方法
1. 概要
property() 函数的作用是在新式类中返回属性值。
- 通过存取方法定义的属性通常称为特性(property)
- 让所有的属性看起来都一样
property函数: property(fget=None, fset=None, fdel=None, doc=None)
fget
是获取属性值的方法。fset
是设置属性值的方法。fdel
是删除属性值的方法。doc
是属性描述信息。
2. property在新式类中返回属性值
提示:这里主要介绍使用类的属性访问类的私有变量
class MyClass(object):
def __init__(self):
self.__param = None
def getParam(self):
print("getParam: %s"%self.__param)
return self.__param
def setParam(self, value):
self.__param = value
print("setParam:%s"%self.__param)
def delParam(self):
print("delParam:%s"%self.__param)
del self.__param
param = property(getParam, setParam, delParam)
cls = MyClass() # 实例化对象
cls.param = 10 # 设置
print("current param:%s"%cls.param) # 获取
del cls.param # 删除
运行结果:
setParam:10
getParam: 10
current param:10
delParam:10
在访问对象属性param时,对应执行了property(getX,setX,delX)所指定的方向而做了一些额外的事情。
3.使用@property访问类的属性
提示:@property装饰器可以将python定义的函数当作属性来访问
class YourClass(object):
def __init__(self):
self.__param = None
@property
def param(self):
print("getParam: %s" % self.__param)
return self.__param
@param.setter
def param(self, value):
self.__param = value
print("setParam:%s" % self.__param)
@param.deleter
def param(self):
print("delParam:%s" % self.__param)
del self.__param
cls = YourClass()
cls.param = 10
print("current param:%s" % cls.param) # 获取
del cls.param
输出结果:
setParam:10
getParam: 10
current param:10
delParam:10
YourClass的三个属性获取,设置,删除函数为同名函数。
此方法更加灵活、简单,在开发中经常使用。
3.技术小结
property函数的用途就是:不希望我的类中的某属性悄悄地被访问,赋值或修改。希望在被访问、修改、赋值时能得到一些通知。(可以访问计数,可以发修改警告等等)。
原文地址:https://blog.csdn.net/beauthy/article/details/142431485
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!