我想创建一个可以继承对象“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