前言:
现时我们对“python类调用方法”大体比较注重,兄弟们都想要剖析一些“python类调用方法”的相关内容。那么小编也在网络上搜集了一些关于“python类调用方法””的相关资讯,希望大家能喜欢,你们一起来了解一下吧!python通过property达到像调用属性一样来调用方法。
存在两种方式:
(1) 类属性:在类中定义值为property对象的类属性。
(2) 装饰器:在方法上应用装饰器@property。
1.1 property作为类属性
用法
property(fget=None, fset=None, fdel=None, doc=None)#比如:class C(object): def __init__(self):self._x = None def getx(self): return self._x def setx(self, value): self._x = value def delx(self): del self._x x = property(getx, setx, delx, "I'm the 'x' property.")
描述
将property()函数赋值给属性x,属性x要和def的函数名一致。
fget -- 获取属性值的函数
fset -- 设置属性值的函数
fdel -- 删除属性值函数
doc -- 属性描述信息
c=C(), 则c.x 将触发 getter,c.x = value 将触发 setter , del c.x 触发 deleter,C.x.doc将获取doc值。
注意:getx里面的self._x不能用self.x,因为self.x会自动调用getx,这样就会陷入无限循环。
示例
>>> class MyPro: def __init__(self):self._name=None def getname(self):return self._name def setname(self,name):self._name=name def delname(self):del self._name name=property(getname,setname,delname,'这是name property')>>> mp=MyPro()# 调用属性一样调用方法>>> mp.name='梯阅线条'>>> mp.name'梯阅线条'>>> MyPro.name.__doc__'这是name property'>>> del mp.name>>> mp.nameTraceback (most recent call last): File "<pyshell#49>", line 1, in <module> mp.name File "<pyshell#44>", line 3, in getname def getname(self):return self._nameAttributeError: 'MyPro' object has no attribute '_name'
本文首发微信公众号:梯阅线条,
更多内容参考python知识分享或软件测试开发目录。
标签: #python类调用方法 #python class 获取属性