【发布时间】:2009-06-19 20:11:03
【问题描述】:
是否可以动态子类化?我知道有____bases____,但我不想影响该类的所有实例。我希望对象 cf 变形为 DrvCrystalfontz 类的 mixin。进一步进入层次结构的是 gobject 的子类,需要在此级别可用以连接信号,而下面的解决方案是不够的。
class DrvCrystalfontz:
def __init__(self, model, visitor, obj=None, config=None):
if model not in Models.keys():
error("Unknown Crystalfontz model %s" % model)
return
self.model = Models[model]
if self.model.protocol == 1:
cf = Protocol1(self, visitor, obj, config)
elif self.model.protocol == 2:
cf = Protocol2(self, visitor, obj, config)
elif self.model.protocol == 3:
cf = Protocol3(self, visitor, obj, config)
for key in cf.__dict__.keys():
self.__dict__[key] = cf.__dict__[key]
【问题讨论】:
-
您能否再解释一下您的用例,以及为什么上述解决方案不起作用?
-
请恢复原问题,这对没看过的人来说完全没用。如果您对自己的问题有答案,请创建一个answer!
标签: python subclassing