python的setattr可以直接给类设置属性!!!!而不是非要是对象
dynamic.py
import unittest class MakeTestCases:
testcases = None def make_test_func(self, case=None):
def func(*args, **kwargs):
self = args[0]
self.assertEqual("1", "1") return func def make_test_class(self, *args, **kwargs):
# 自动创建测试类,并继承unittest.TestCase
return type("TestContact", (unittest.TestCase,), {}) def make(self):
# 获取动态类
test_class = self.make_test_class()
setattr(test_class, "test_case01", self.make_test_func())
return test_class
main.py
import unittest
from b.dynamic import MakeTestCases if __name__ == '__main__':
# 构建用例
test_clazz = MakeTestCases().make()
test_suite = unittest.TestSuite()
# 将用例加载至test_suite内
test_suite.addTests(unittest.TestLoader().loadTestsFromTestCase(test_clazz))
# 此方法适合 make()返回列表的方式
# testsuite.addTests(cases)
# 创建unittest runner
"""
verbosity参数用法
0 (quiet): 只显示执行的用例的总数和全局的执行结果。
1 (default): 默认值,显示执行的用例的总数和全局的执行结果,并对每个用例的执行结果(成功 T 或失败 F)有个标注。
2 (verbose): 显示执行的用例的总数和全局的执行结果,并输出每个用例的详细的执行结果。
"""
runner = unittest.TextTestRunner(verbosity=2)
# 运行测试
runner.run(test_suite)
python的setattr可以直接给类设置属性!!!!而不是非要是对象的更多相关文章
- python - 装饰器+描述符(给类添加属性且属性类型审核)
装饰器+描述符 实现给一个类添加属性且对添加的时,对属性进行类型审核: def zsq(**kwargs): def fun(obj): for i,j in kwargs.items(): seta ...
- Python基础:面向对象基础 (一) 类及其属性和魔法方法
定义类,添加和获取对象属性 # 定义类 格式如下 # class 类名: # 方法列表 # 新式类定义形式 # info 是一个实例方法,第一个参数一般是self,表示实例对象本身 class Her ...
- 为spring代理类设置属性值
现在有一个bean包含了私有属性,如下: @Component public class Bean { String name; public String getName() { return na ...
- python3 速查参考- python基础 8 -> 面向对象基础:类的创建与基础使用,类属性,property、类方法、静态方法、常用知识点概念(封装、继承等等见下一章)
基础概念 1.速查笔记: #-- 最普通的类 class C1(C2, C3): spam = 42 # 数据属性 def __init__(self, name): # 函数属性:构造函数 self ...
- Python的getattr(),setattr(),delattr(),hasattr()及类内建__getattr__应用
@Python的getattr(),setattr(),delattr(),hasattr() 先转一篇博文,参考.最后再给出一个例子 getattr()函数是Python自省的核心函数,具体使用大体 ...
- python学习道路(day8note)(抽象类,类的方法,异常处理,socket编程)
1.#面向对象 #抽象接口 === 抽象类 #就是架构师给你一个架子,你们去写,如果满足不了直接报错 #python2 print("python2---抽象类".center(2 ...
- guxh的python笔记六:类的属性
1,私有属性 class Foo: def __init__(self, x): self.x = x 类的属性在实例化之后是可以更改的: f = Foo(1) print(f.x) # 1 f.x ...
- python 反射 动态导入模块 类attr属性
1.反射 hasattr getattr delattr setattr 优点:事先定义好接口,接口只有在被完成后才能真正执行,这实现了即插即用,这其实是一种“后期绑定”,即先定义好接口, 然后是再去 ...
- 翻译《Writing Idiomatic Python》(五):类、上下文管理器、生成器
原书参考:http://www.jeffknupp.com/blog/2012/10/04/writing-idiomatic-python/ 上一篇:翻译<Writing Idiomatic ...
- python 内建函数setattr() getattr()
python 内建函数setattr() getattr() setattr(object,name,value): 作用:设置object的名称为name(type:string)的属性的属性值为v ...
随机推荐
- Codensity T408 视频转码器
Codensity T408 视频转码器 微信: orihard2014
- Oracle ORA28040报错解决
使用plsql Developer连接时,发现报ora-28040 No matching authentication protocol select username, account_statu ...
- opencv对图片画框写文字
业务背景:对图片进行画框后调用排序方法按照"从上到下,从左到右"对已经画的框进行排序.排序方法当前有缺陷,修复后需要验证. 目前有如下信息: 原始图片地址 图片对应的每个框的坐标( ...
- maven本地安装jar包
mvn install:install-file -Dfile=cs-pay-client-2.0.0.jar -DgroupId=com.test.pay -DartifactId=gh-epay- ...
- 【性能监控】nmon和pyNmonAnalyzer的搭建和使用
1,安装nmon 二进制安装:暂时空着,没有FQ,访问不了nmon的官网. 下载对应操作系统的文件,直接运行: 下载地址:https://pan.baidu.com/s/1gTBh10-ark5gbe ...
- centos 7 更改Jenkins 主目录
默认为:/var/lib/jenkiins 1 创建更改后的目录 (所有步骤用root执行!!!) mkdir -p /data/jenkiins 2 将原有目录数据拷贝到更改后的目录 cp -r ...
- laravel 导出
常规导出xlsx 更多的是导出小数据 需要大数据导出的时候 需要临时更改内存大小 ini_set('memory_limit', '1024M'); 不更改内存的情况 可以选择队列导出到服务器 ...
- linux 防火墙管理
1.查看防火墙状态指令 Firewall-cmd --state 2.关闭防火墙 service firewall stop 3.打开防火墙 service firewall start 4.重启防火 ...
- noi 1.5 28 分离整数的各个数位
描述 给定一个整数,要求从个位开始分离出它的每一位数字. 输入 输入一个整数,整数在1到100000000之间. 输出 从个位开始按照从低位到高位的顺序依次输出每一位数字.数字之间以一个空格分开. 样 ...
- 第一课 基本的DOS命令
常见的DOS命令 1.#切换盘符 F: 2.#查看当前目录下所有文件 dir 3.#切换目录 cd change directory cd ..返回上一级 4.#清理屏幕 cls {clear scr ...