Property属性
1.什么是property属性
一种用起来像是使用的实例属性一样的特殊属性,可以对应于某个方法
class Foo():
def func(self):
pass
# 定义property属性
@property
def prop(self):
pass
foo = Foo() # 实例化对象
foo.func() # 调用实例方法
value = foo.prop # 调用property属性
定义和调用property需要注意的两个点:
1.定义:在实例方法的基础上添加@property装饰器;并且仅有一个self参数
2.调用时,无需括号
2.简单实例
某购物网站搜索界面,用户可以选择跳转的页数(每页默认十条数据)
class Pager:
def __init__(self,current_page):
self.current_page = current_page # 当前用户请求得页码(1,2,3....)
self.peritems = 10 #每页默认显示得数据条数
@property
def start(self):
val = (self.current_page-1) * self.peritems
return val
@property
def end(self):
val = self.current_page*self.peritems
return val
p = Pager(1) # 实例化对象
# ######## 调用 ########
print(p.start) # 起始值
print(p.end) # 结束值
总结
从上述可见,property属性的功能:property属性内部进行一系列的逻辑计算,最终将计算机结果返回–>可读性更高,开发者调用方便(调用方法像调用属性一样简单了)