zoukankan      html  css  js  c++  java
  • 【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)
  • 相关阅读:
    自定义View的ToolBar布局报错Error:(2) No resource identifier found for attribute 'context' in package 'c
    在学git之主分支 branch
    获取发布版SHA1
    关于开启线程与UI的操作
    播放音频和视频(VideoView控件)
    通知栏Notification的应用
    Android 真机调式 Installation failed with message 远程主机强迫关闭了一个现有的连接。. It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-installing. WA
    运行程序申请危险权限
    mysql乐观锁总结和实践
    Nginx配置文件nginx.conf中文详解
  • 原文地址:https://www.cnblogs.com/python-test001/p/12400823.html
Copyright © 2011-2022 走看看