我想創建一個可以繼承對象「A(對象)」或對象「B(對象)」的子類「sub()」。在python中繼承動態對象
這樣做的以下工作:
class A(object):
def __init__(self):
print "Class A was inherited"
class B(object):
def __init__(self):
print "Class B was inherited"
class sub(A if inh==A else B):
def __init__(self,inh):
if inh==A:
A.__init__(self)
else:
B.__init__(self)
然而, 「INH」 是不是我建我的一個定義的參數 「子()」。我希望能夠用一個參數「inh」來構造我的「sub()」,它初始化「A(object)」或「B(object)」。
這樣:
my_object = sub(inh = A)
會給我:
Class A was inherited
這:
my_object = sub(inh = B)
會給我
Class B was inherited
我的問題是,如何將「inh」傳遞給構造函數「sub()」,以便它可以選擇正確的對象來繼承?
您不能。繼承在創建類型時完成,而不是在實例化時完成。但是,您可以動態創建一個新類。 – spectras
你爲什麼要這樣做?聞起來像[XY問題](https://meta.stackexchange.com/q/66377/322040)。 – ShadowRanger
我想__應該可以使用[metaclass](https://stackoverflow.com/questions/100003/what-is-a-metaclass-in-python)和['__new__'](https:// infohost。 nmt.edu/tcc/help/pubs/python/web/new-new-method.html),但我真的沒有看到任何情況下這是最好的選擇。 – jdehesa