我宁愿这样做
class A:
def __init__(self):
self._TESTS = {
'val1': self.test1,
#...
'val10': self.test10
}
def test(self, x):
for v, f in self._TESTS.items():
if f(x):
return v
return None
在这上面
class A:
def test(self, x):
if self.test1(x):
return 'val1'
#...
if self.test10(x):
return 'val10'
return None
但是,我需要按特定顺序调用test*
方法。你会怎么做?你知道吗
我可以使用collections.OrderedDict
,但实际上我根本没有字典,因为我总是一次调用所有测试。那么,一个元组列表?你知道吗
您可以简单地使用
list
的tuples
,如下所示:是的,使用
tuples
列表,顺序保留,不需要dict,因为不需要查找。循环只是略有不同,不再是.items()
,而是直接解包:如果测试函数按任意顺序放置-请使用已排序的元组列表:
相关问题 更多 >
编程相关推荐