• 【python基础语法】第11天作业练习题


    '''
    1、上课的代码全部敲一遍(不要求提交)
    2、有一组数据,如下格式:
    [
    {'case_id': 1, 'method': 'post', 'url': '/member/login', 'data': '123', 'actual': '不通过','excepted': '通过'},
    {'case_id': 2,  'method': 'post', 'url': '/member/login', 'data': '123','actual': '通过', 'excepted': '通过'},
    {'case_id': 3, 'method': 'post', 'url': '/member/login', 'data': '123', 'actual': '不通过','excepted': '通过'},
    {'case_id': 4,  'method': 'post', 'url': '/member/login', 'data': '123','actual': '通过', 'excepted': '通过'},
    {'case_id': 4, 'method': 'post', 'url': '/member/login', 'data': '123', 'actual': '不通过','excepted': '通过'},
    {'case_id': 5,  'method': 'post', 'url': '/member/login', 'data': '123','actual': '通过', 'excepted': '通过'},
    ]
    请列表中的每个字典遍历出来,每个字典的数据用一个对象来保存,
    要求:使用上次作业的测试用例类的实例对象来保存每个字典中的数据
    字典中的key对应属性名,value为属性值。(不使用setattr)
    最后把所有的测试用例对象,放入一个列表中,得到如下如格式的数据:
    [用例对象,用例对象,用例对象...]
    
    3、定义一个如下的类
    class CaseData:
        pass
    将第二题中给的数据使用classData类通过setattr(反射机制),保存为第二题要求的格式
    '''
    
    # 第二题
    
    class Cases():
        """用例类"""
        def __init__(self, case_id, url, data, method, excepted, actual):
            self.case_id = case_id
            self.url = url
            self.data = data
            self.method = method
            self.excepted = excepted
            self.actual = actual
    # 请列表中的每个字典遍历出来,每个字典的数据用一个对象来保存
    data = [
    {'case_id': 1, 'method': 'post', 'url': '/member/login', 'data': '123', 'actual': '不通过','excepted': '通过'},
    {'case_id': 2,  'method': 'post', 'url': '/member/login', 'data': '123','actual': '通过', 'excepted': '通过'},
    {'case_id': 3, 'method': 'post', 'url': '/member/login', 'data': '123', 'actual': '不通过','excepted': '通过'},
    {'case_id': 4,  'method': 'post', 'url': '/member/login', 'data': '123','actual': '通过', 'excepted': '通过'},
    {'case_id': 4, 'method': 'post', 'url': '/member/login', 'data': '123', 'actual': '不通过','excepted': '通过'},
    {'case_id': 5,  'method': 'post', 'url': '/member/login', 'data': '123','actual': '通过', 'excepted': '通过'},
    ]
    # 方式一
    def work2_2(data):
        new_data = []
        for dic in data:
            # 通过位置传参
            case = Cases(dic["case_id"],dic["url"],dic["data"],dic["method"],dic["excepted"],dic["actual"])
            new_data.append(case)
            return new_data
    work2_2(data)
    
    # 方式二:
    def work2_3(data):
        # 创建一个新列表
        new_data = []
        # 遍历列表
        for dic in data:
            # 创建一个对象,将遍历得到的数据传入到类的init方法中,进行初始化(属性设置)
            case = Cases(**dic) # 此处使用**对字典进行解包
            # 将创建出来的对象,放入新列表
            new_data.append(case)
            return new_data
    work2_3(data)
    # res = work2_3(data)
    # print(res)
    
    # 第三题
    class CaseData():
        pass
    
    # 方式一
    def work3_1(data):
        # 创建一个新列表
        new_data = []
        # 遍历列表
        for i in data:
            # 创建一个对象
            case = CaseData()
            # 遍历出当前字典的所有数据
            for k,v in i.items():
                # 将遍历出来的数据设置为对象的属性
                setattr(case,k,v)
            # 将设置好属性的对象,加入到列表中
            new_data.append(case)
        return new_data
    work3_1(data)
    # res = work3_1(data)
    # print(res)
  • 相关阅读:
    e824. 获得和设置JSplitPane中的子组件
    e827. 设置JSplitPane中分隔物的大小
    e826. 获得和设置JSplitPane分开的位置
    e788. 取消JSpinner的键盘编辑能力
    e790. 设置JSpinner的边框
    e789. 限制用JSpinner实现数字选择的值
    e787. 用JSpinner实现小时选择
    e793. 监听JSpinner数据变化
    e791. 为JSpinner定制编辑器
    e792. 建立一个包括所有数据的SpinnerListModel
  • 原文地址:https://www.cnblogs.com/python-test001/p/12400823.html
Copyright © 2020-2023  润新知