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