2016-07-26 84 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() 
相關問題