使用面向对象相关内容编写:

一共900条内容,输入想要查看的页码,展示相应页面的内容,每页展示10条内容

按照学习面向对象之前的方法写:

data_list = []

for i in range(1, 901):
    data_list.append('alex-%s' % i)

while True:
    # 1. 要查看的页面
    page = int(input('请输入要查看的页码:'))

    # 2. 每页显示 10 条
    per_page_num = 10

    start = (page-1) * per_page_num
    end = page * per_page_num

    page_data_list = data_list[start:end]
    for item in page_data_list:
        print(item)
以前的写法

以下是面向对象方式编写:

第一种方式:

class Pagenation(object):
    """
    处理分页相关的代码
    """
    def __init__(self,page,per_page_num=10):
        """
        初始化
        :param page: 当前要查看的页面
        :param per_page_num: 每页默认要显示的数据行数
        """
        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
data_list = []
for i in range(1, 901):
    data_list.append('alex-%s' % i)
while True:
    # 1. 要查看的页面
    page = int(input('请输入要查看的页码:'))

    obj = Pagenation(page)
    page_data_list = data_list[obj.start:obj.end]
    for item in page_data_list:
        print(item)
第一种

第二种方式:

class Pagenation(object):
    """
    处理分页相关的代码
    """
    def __init__(self,data_list,page,per_page_num=10):
        """
        初始化
        :param data_list: 所有的数据
        :param page: 当前要查看的页面
        :param per_page_num: 每页默认要显示的数据行数
        """
        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):
        result = self.data_list[self.start:self.end]
        for row in result:
            print(row)
data_list = []
for i in range(1, 901):
    data_list.append('alex-%s' % i)
while True:
    # 1. 要查看的页面
    page = int(input('请输入要查看的页码:'))
    obj = Pagenation(data_list,page)
    obj.show()
第二种