zoukankan      html  css  js  c++  java
  • 面向对象封装

    面向对象封装应用

    这里通过封装构造成页面的搜索条件

    """
    面向对象封装的特点是:职责划分,封装什么就处理什么,然后给其他的类使用
    FilterOption类中封装的是具体的处理功能,FilterList类中传入参数option,和data_list,
    option:实例化对象的时候,传入的参数是FilterOption实例化的对象,就是FilterList可以调用FilterOption的属性和方法
    data_list:用于__iter__ 的yield使用,yield后面是可迭代对象。
    如果data_list 中的数据是数字类型,在操作的时候需要转换成字符串
    """
    
    
    class FilterList(object):
        def __init__(self, option, data_list):
            self.option = option
            self.data_list = data_list
    
        @property
        def show(self):
            ret = self.option.nick  # 调用FilterOption中的nick方法
            return ret
    
        def __iter__(self):
            yield "全部"
            for i in self.data_list:
                # yield self.option.bs + str(i)
                yield "<a href='{0}'>{1}</a>".format(i, self.option.bs + str(i))
    
    
    class FilterOption(object):
        def __init__(self, name, age):
            self.name = name
            self.age = age
    
        @property
        def nick(self):
            tpl = self.name + str(self.age)
            return tpl
    
        @property
        def bs(self):
            if self.age > 15:
                return "大"
            else:
                return "小"
    
    
    obj_list = [
        FilterList(FilterOption('aaa', 9), [1, 2, 3]),
        FilterList(FilterOption('bbb', 19), [4, 5, 6]),
        FilterList(FilterOption('ccc', 9), [7, 8, 9]),
        FilterList(FilterOption('ddd', 18), [3, 5, 6])
    ]
    
    for obj in obj_list:
        print(obj.show) # 调用show方法
        for item in obj:
            """
            对象中有__iter__和yield方法,还可以进行for循环
            """
            print(item, end='  ')
        else:
            print("")
    
    
  • 相关阅读:
    JS 逻辑运算符&&与||的运算
    Jquery on("click") 方法绑定事件后执行多次解决办法
    java的web开发使用struts2/springMVC和spring框架理解
    HTTPClient
    eclipse中配置tomcat内存大小
    杀掉window占用端口
    Unirest
    乐观锁
    自定义标签
    xss和csrf攻击
  • 原文地址:https://www.cnblogs.com/Python666/p/7510145.html
Copyright © 2011-2022 走看看