这是一个关于Python Mixins的问题,该问题通常可能有用。我只是使用Django模型,因为这是我最熟悉的用例。
mixin应该从它设计为与“对象”混合的类继承吗?
通过代码示例,哪个更正确或更佳,或更佳,取决于您要实现的目标?
这个
class TaggingMixin(models.Model):
tag = models.ForeignKey(Tag)
class Meta:
abstract = True
class MyModel(models.Model, TaggingMixin):
title = models.CharField(max_length=100)
或这个:
class TaggingMixin(object):
tag = models.ForeignKey(Tag)
class Meta:
abstract = True
class MyModel(models.Model, TaggingMixin):
title = models.CharField(max_length=100)
我认为从对象继承是正确的方法。但是我在网上看到第一种情况的例子...
编辑:我已经将我的跟进问题移到一个单独的问题:Django抽象模型与简单的Python mixins与Python ABC
TypeError: Cannot create a consistent method resolution order (MRO)。做吧class MyModel(TaggingMixin):。参见stackoverflow.com/q/29214888/1627479