有没有更好的方法来构造这些函数调用?

时间:2016-07-26 23:56:13

标签: python

我有一个需要多个辅助类之一的类。它只会使用其中一个帮助程序,并且它们都具有相同的接口。所以我正在编写这样的代码:

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 个答案:

答案 0 :(得分:1)

你确实可以使用字典:

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

helper = my_dict[self.type]()
helper.do_stuff()