2016-07-26 71 views
0

我有一个需要其中一个辅助类的类。它只会使用这些助手中的一个,并且它们都具有相同的接口。所以我在写这样的代码:有没有更好的方法来构造这些函数调用?

if self.type == Class.Type.a: 
    helper = A() 
elif self.type == Class.Type.b: 
    helper = B() 
elif self.type == Class.Type.c: 
    helper = C() 

helper.do_stuff() 

目前大约有5种不同类型,但我可以看到,扩大,这种结构已经在我大约四分五次课,我可以看到至少需要这个逻辑十几次。

有没有更好的方法来执行这个逻辑?我认为Python经常使用字典来执行这种类型的逻辑,但我还没有看到这种习惯用法是如何工作的。

回答

1

你的确可以使用字典:

my_dict = {Class.Type.a:A, 
      Class.Type.b:B, 
      Class.Type.c:C} 

helper = my_dict[self.type]() 
helper.do_stuff() 
相关问题