这个类变量将由
过程。
…我想你的意思是:“…在类上它正在装饰…”而不是“在类上它是它的参数”(后者将是一场灾难)。
类词典。
将OldStyleClass与
mixin类的内容(例如。
不好的消息
MixinOldSchoolRemix
派生自
MixinClass
不
在前者的字典里。所以,
old_style_mix
必须采取不同的策略:例如,构建一个新类(我认为必须是一个新类型的类,因为旧类型的类确实如此)
不
接受新式的
__bases__
)用适当的碱基序列,以及适当调整的字典。
附上述但书。
似乎这是一个常见的问题
问题在于
可用模块仍在使用
…但是,与从未被设计用于混合的类的混合肯定是错误的
不
一个常见的设计模式,所以这个问题一点都不常见(我不记得在新风格的课程诞生后的很多年里,我都没有见过一次,我积极地咨询,教授高级课程,帮助人们解决Python问题,以及自己做了很多软件开发——我确实倾向于遇到任何“合理常见”的问题,人们可能有与功能已经存在了足够长的时间!-).
>>> class Mixo(object):
... def foo(self):
... print 'Mixo.foo'
... self.thesuper.foo(self)
...
>>> class Old:
... def foo(self):
... print 'Old.foo'
...
>>> class Mixed(Mixo, Old):
... thesuper = Old
...
>>> m = Mixed()
>>> m.foo()
Mixo.foo
Old.foo
Mixed
以…的名义
Mixo
在你的装潢师里,你可以打电话给
type
,或通过设置
Mixed.__name__ = cls.__name__
(其中
cls
def oldstylemix(mixin):
def makemix(cls):
class Mixed(mixin, cls):
thesuper = cls
Mixed.__name__ = cls.__name__
return Mixed
return makemix