zoukankan      html  css  js  c++  java
  • 利用函数或者方法返回值,使主逻辑代码更加简洁

    列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方法的返回值,也使的主代码的编写更加简洁

  • 相关阅读:
    asp.net 4.Redirect重定向和文件图片上传
    asp.net 3.三层架构
    asp.net 2.Memcached
    asp.net 1.HTTP协议
    移动电商 2.搭建业务后台框架
    移动电商 1.系统概要与数据库设计
    C#面向对象22 委托事件反射
    mysql对表中数据根据某一字段去重
    mysql 对数据的自增ID重新进行排序
    PHP csv文件30w+数据导入mysql数据库
  • 原文地址:https://www.cnblogs.com/zhuhaofeng/p/9551125.html
Copyright © 2011-2022 走看看