利用函数或者方法返回值,使主逻辑代码更加简洁

列1:利用类中属性的返回值,使主逻辑代码更加简洁

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   #属性在编写的时候不能传递参数,但是return 的时候可以使用实例参数
                                                   #利用属性有返回值的特点,把这个返回给下面的主逻辑代码,可以使主逻辑代码
    @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)

上面是一个分页功能的例子,在这个里面用到了静态方法的返回值

例2:利用列表pop方法返回值

#循环栈堆思想
#解决思路,后进先出
# lst=["E:\老男孩课程\day19"]                           #主要是利用列表的pop方法有返回值的特点
# sum_size=0
# while lst: #lst不为空就为True,为空就为False
#     path=lst.pop()   #列表pop最后一个值的时候会返回pop的值。利用这个特性可以给结果赋值
#     path_lst=os.listdir(path)
#     for name in path_lst:
#         path_abs=os.path.join(path,name)        #得到一个拼接后的绝对地址
#         if os.path.isdir(path_abs):
#             sum_size += os.path.getsize(path_abs)
#             lst.append(path_abs)
#         else:
#             sum_size += os.path.getsize(path_abs)st
# print(sum_size)

这个例子利用列表pop方法的返回值,也使的主代码的编写更加简洁

 

posted @ 2018-08-28 21:53  solomon123  阅读(267)  评论(0编辑  收藏  举报