2010-10-10 67 views
0

我有一系列類,我將註冊爲更高級別抽象類的服務。高級班將有一個功能,獲得基於init args等較低級別的類。這聽起來很搶手嗎?另外,這是什麼叫?我稱之爲工廠功能/類,但我真的不知道(這使得谷歌最佳實踐更難)。Python - 有關工廠功能的問題

回答

2

它被稱爲「元類編程」。在最近的Python版本中,通過定義__new__()靜態方法並返回適當類型的對象來實現它。

class C(object): 
    def __new__(cls, val): 
    if val == 5: 
     return 'five' 
    else: 
     return super(C, cls).__new__(cls) 

c1 = C(3) 
print c1 
c2 = C(5) 
print c2