Это вопрос о Python Mixins, который может быть полезен в целом.Я просто использую модели Django, так как это тот случай использования, с которым я больше всего знаком.
Должен ли миксин наследовать от класса, для которого он предназначен для встраивания в объект или из него?
Примеры по коду: что правильнее или лучше или лучше в зависимости от того, чего вы хотите достичь?
Это
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 против азбуки Python