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 ...
随机推荐
- 知识图谱demo net core + neo4j
知识图谱 基于neo4j数据库和.net core开发环境 Neo4j数据库的安装 安装neo4j数据库之前,需安装java的JDK文件,安装版本需与数据库保持一致,较新的neo4j数据库都需要至少j ...
- Hook新特性(一)
基础Hook 1.useState const [state, setState] = useState(initialState); //返回一个state变量,指为initialState,set ...
- 软件离线许可(License)实现原理
我们经常使用各种开发软件,比如IntelliJ IDEA.Navicat.Visual Studio等,这些软件都有一个特点,就是要收费.一般是我们需要去购买一个许可,然后输入这个许可到软件里就能够使 ...
- mongodb添加删除节点及仲裁节点
温馨提示:此mongodb版本为5.0.11 ,并注意,如果要删除节点,可以直接删除,添加节点前要先删除仲裁节点. rs.remove("192.168.0.180:27017") ...
- laravel 插件库网站
1.https://packagist.org 2.http://packalyst.com
- prophet安装(ubuntu16 python3.6)
ubuntu16 python3.6 (ubuntu16自带的python3是3.5 升级至3.6可参考https://blog.csdn.net/weixin_42544006/article/de ...
- 安卓10.0蓝牙HIDL的直通式初始化流程
本文仅介绍扼要的流程,没有系统化介绍. 首先从system\bt\hci\src\hci_layer_android.cc文件的函数void hci_initialize() 开始初始化: void ...
- ffmpeg命令参数
用法 ffmpeg -i hello.mp3 -acodec libfdk_aac hello.aac mp3转aac ffmpeg -i hello.aac -acodec libmp3lame h ...
- AS3.0和php数据交互POST方式
AS3.0和php数据交互POST方式首先打开flash建立一个as3.0的文件拖 textarea和button组建到舞台上分别给两个组件命名:txtcontent和addcontent然后点第一帧 ...
- nginx服务器下的TP5框架的虚拟域名配置
server { listen 80; default_type 'text/html'; charset utf-8; server_name www.xxx.com; root /usr/loca ...