2012-08-11 30 views
0

我想告訴班級每次使用它時都要繼承什麼。來自變量Python的Inheirit?

這裏是

class widget(var): 
    def __init__(self,var): 
     #I really have no idea 

bob=widget(wx.ComboBox) #I want the class to inheirit from wx.ComboBox 
steve=widget(wx.ListBox) #I want the class to inheirit from wx.ComboBox 

請像沒有問題的例子「爲什麼要這麼做?」

+6

你爲什麼要這麼做? (這是不可避免的:)) – 2012-08-11 12:52:23

+1

我認爲你要找的是「裝飾者模式」,而不是繼承。 – EyalAr 2012-08-11 12:54:10

+0

或設置一些默認值的工廠。 – poke 2012-08-11 12:55:52

回答

0

希望,這將幫助你:

class A: 
    v = 'a' 

class B: 
    v = 'b' 

def C(x): 
    class C(x): pass 
    return C 
x = A 
print C(x).v 

UPD注:看看python decorators如果你還沒有。

4

您需要創建一個不同的類,每次從您想要的任何基類的子類。您可以與上即時創建一個類的功能做到這一點很容易:

def widget(var): 
    class Widget(var): 
     pass 
    return Widget() 
+1

這被稱爲工廠。 – 2012-08-11 13:18:02