属性:通过方法改造出来 # 1.编写时 # 方法上方写@property # 方法参数:只有一个self # 2.使用时:无需加括号 对象.方法 # 3.应用场景:对于简单的方法,当无需传参且有返回值时,可以使用 @property class Foo(object): def _init_(self): ... @property def start(self): return 1 @property def end(self): return 10 obj=Foo() print(obj.start) print(obj.end)
练习:分页
class Paging: """ 分页类 """ def __init__(self,data_list,page,per_page_num=10): """ 初始化 :param data_list: 所有的数据 :param page: 当前要看的页 :param per_page_num: 毎页要显示的数据行数 :return: """ self.data_list = data_list self.page =page self.per_page_num = per_page_num @property def start(self): """ 计算开始行数 :return: """ return (self.page -1)*self.per_page_num @property def end(self): """ 计算结束行数 :return: """ return (self.page)*self.per_page_num def show(self): """ 打印 :return: """ for item in self.data_list[self.start:self.end]: print(item) data_list=[] for i in range(1000): data_list.append("data_%s"%i) while 1: page=input("请输入要查看的页码,q退出").strip() if page.lower()=="q": break else: paging=Paging(data_list,int(page)) paging.show()