在Python中灵活地按条件导入类
我在用Python继承类时遇到了一个问题 我有3个包含测试用例的类,一个全局变量称为在Python中灵活地按条件导入类,python,Python,我在用Python继承类时遇到了一个问题 我有3个包含测试用例的类,一个全局变量称为my\u condition global my_condition = 1 class mdl_test_case: def test_mdl_1(): print "Testing MDL" class feac_test_case: def test_feac_1(): print "Testing FEAC" class all_test_case()
my\u condition
global my_condition = 1
class mdl_test_case:
def test_mdl_1():
print "Testing MDL"
class feac_test_case:
def test_feac_1():
print "Testing FEAC"
class all_test_case():
def test_common_1():
print "Testing Common"
现在在类all_test_case
中,我希望继承类mdl_test_case
或feac_test_case
,具体取决于变量my_condition
的值
详情如下
- 如果我设置
并调用类my_condition=1
。我希望继承类all_test\u case
mdl\u测试案例
- 反之亦然,如果我设置
并调用类my_condition=2
。我希望继承类all_test\u case
feac\u测试案例
- 每次调用类
all\u test\u case
class mdl_test_case:
def test_mdl_1(self):
print "Testing MDL"
class feac_test_case:
def test_feac_1(self):
print "Testing FEAC"
def updateClass(my_condition):
global all_test_case
if my_condition == 1:
class all_test_case(mdl_test_case):
def test_common_1(self):
print "Testing Common"
elif my_condition == 2:
class all_test_case(feac_test_case):
def test_common_1(self):
print "Testing Common"
现在,all_test_case
将根据my_条件
updateClass(1)
ss = all_test_case()
ss.test_mdl_1()
updateClass(2)
ss = all_test_case()
ss.test_feac_1()
# prints
# Testing MDL
# Testing FEAC
为什么不使用
unittest
框架和?这样你就不必动态地改变继承树(这真的是不需要的),如果我这样做的话,由于过滤和跳过,它的运行速度会很慢。我有大约300个类和20000个测试用例,所以过滤和跳过对我来说不是一个好的解决方案。谢谢你的建议,但是我有很多变量,比如“我的条件”和很多类。所以按照你的建议去做会使我们的代码变得非常复杂和失控。也许我需要一个更好的解决方案来解决这个问题。