是否可以动态子类化?我知道有____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]