python的setattr可以直接给类设置属性!!!!而不是非要是对象

python的setattr可以直接给类设置属性!!!!而不是非要是对象,第1张

概述 dynamic.pyimportunittestclassMakeTestCases:testcases=Nonedefmake_test_func(self,case=None):deffunc(*args,**kwargs):self=args[0]self.assertEqual("1","1")returnfu

 

dynamic.py

import unittestclass 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 unittestfrom b.dynamic import MakeTestCasesif __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的setattr可以直接给类设置属性!!!!而不是非要是对象所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1185472.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存