属性极其应用(分页显示)
属性极其应用(分页显示)
- 定义:
- @property装饰器
- 只有一个self参数
 
- 执行:
- 对象.方法 ,不用加括号
 
分页显示
#**传统代码**
def func():
    '''
    主函数
    :return:
    '''
    num = int(input("请输入要浏览的页码:"))#大于0切合法
    star_info = (num-1)*10
    end_info =  num * 10
    with open("shops",'r',encoding = 'utf-8') as f:
        a = f.readline()
        lis = []
        count = 0
        for line in f:
            count += 1
            if count >= star_info:
                lis.append(line)
            if count >= end_info:
                break
    print("第%s页的内容为"%(num),lis)
func()
#**面向对象的代码**
class Page:
    def __init__(self,total_count,current_page,per_page_count = 10):
        self.total_count = total_count
        self.per_page_count = per_page_count
        self.current_page = current_page
	@property #属性的体现
    def start_index(self):
        return (self.current_page - 1)*self.per_page_count
	@property #属性的体现
    def end_index(self):
        return self.current_page*self.per_page_count
USER_LIST = []
for i in range(321):
    USER_LIST.append("yang-%s"%(i,))
#请实现分页显示
current_page = int(input("请输入要查看的页码:"))
P = Page(321,current_page) #还得手动计算总页码
data_list = USER_LIST[P.start_index:P.end_index]#因为加了属性的装饰器所以start_index()、start_index()后的括号可以去掉
for item in data_list:
    print(item)
'''
思考:
与传统的分页读取相比
其可用性更强。
那么何时要用到类呢?
我认为是在单一函数无法或者很难去解决一个问题时,
需要多个函数,而这些函数类型相似或者需要共用一个或几个参数时
可以考虑用类将函数分类。
'''
    记录学习的点点滴滴
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号