属性极其应用(分页显示)

属性极其应用(分页显示)

  • 定义:
    • @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)
'''
思考:
与传统的分页读取相比
其可用性更强。
那么何时要用到类呢?
我认为是在单一函数无法或者很难去解决一个问题时,
需要多个函数,而这些函数类型相似或者需要共用一个或几个参数时
可以考虑用类将函数分类。
'''
posted @   小杨的冥想课  阅读(122)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示