大佬教程收集整理的这篇文章主要介绍了python中的抽象类+ mixin +多重继承,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
继承不是应该相反吗?foo
目前在MRO之前bar_for_foo_mixin
,然后理所当然地抱怨。用class
myfoo(bar_for_foo_mixin, foo)
它应该工作。
而且我不确定您的班级设计是否是正确的方法。由于您使用mixin来实现,bar
因此最好不要从foo派生而只向’foo’类注册(即foo.register(myfoo)
)。但这只是我的直觉。
为了完整起见,这里是ABC的文档。
因此,我认为代码可能用语言解释了我想做得更好的事情,因此,这里是:
import abc
class foo(object):
__metaclass__ = abc.ABCMeta
@abc.abstractmethod
def bar(self):
pass
class bar_for_foo_mixin(object):
def bar(self):
print "This should satisfy the abstract method requirement"
class myfoo(foo,bar_for_foo_mixin):
def __init__(self):
print "myfoo __init__ called"
self.bar()
obj = myfoo()
结果:
TypeError: Can't instantiate abstract class myfoo with abstract methods bar
我正在尝试使mixin类满足abstract / interface类的要求。我想念什么?
以上是大佬教程为你收集整理的python中的抽象类+ mixin +多重继承全部内容,希望文章能够帮你解决python中的抽象类+ mixin +多重继承所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。