我有一个需要多个辅助类之一的类。它只会使用其中一个帮助程序,并且它们都具有相同的接口。所以我正在编写这样的代码:
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经常使用字典来执行这种类型的逻辑,但我还没有看到这个成语是如何工作的。
答案 0 :(得分:1)
你确实可以使用字典:
my_dict = {Class.Type.a:A,
Class.Type.b:B,
Class.Type.c:C}
helper = my_dict[self.type]()
helper.do_stuff()