相关疑难解决方法(0)

什么是mixin,为什么它们有用?

在" 编程Python "中,Mark Lutz提到了"mixins".我来自C/C++/C#背景,我之前没有听过这个词.什么是mixin?

这个例子的行之间进行读取(我已经链接到了因为它很长),我假设这是一个使用多重继承来扩展类而不是"正确"子类的情况.这是正确的吗?

为什么我要这样做而不是将新功能放入子类?就此而言,为什么mixin/multiple继承方法比使用组合更好?

mixin与多重继承的区别是什么?这仅仅是语义问题吗?

python oop multiple-inheritance mixins

875
推荐指数
16
解决办法
27万
查看次数

TypeError:无法创建一致的方法解析顺序(MRO)

这是我计划用于游戏的代码.但它抱怨MRO错误.我不知道为什么.有人能为我解释一下吗?非常感谢.

class Player:
    pass

class Enemy(Player):
    pass

class GameObject(Player, Enemy):
    pass

g = GameObject()
Run Code Online (Sandbox Code Playgroud)

python inheritance typeerror method-resolution-order

84
推荐指数
3
解决办法
4万
查看次数

Django抽象模型与简单的Python mixins和Python ABCs

这是我提出的另一个问题所引发的问题.

Django提供了抽象基类功能(它与Python中的ABC类不同?)因此可以创建一个可以继承的模型(Django的models.Model),但是没有该模型在数据库中有一个实际的表.一个通过在Model的Meta类中设置'abstract'属性来触发此行为.

现在的问题是:为什么Django会这样解决?为什么需要这种特殊的'抽象基类'模型?为什么不通过继承对象类并将其与现有模型混合来制作模型mixin?或者这也可以通过Python ABCs的任务?(请注意,我对Python中的ABC类不是很熟悉,我的无知可能会在这里显示)

python django

9
推荐指数
2
解决办法
3916
查看次数

南方是否处理模型混合?

我创建了一个mixin并在某些模型中继承了它.问题是当我创建模式迁移时,mixin的字段就在那里.

class MyMixin(object):
    a_field = models.CharField(max_length=30, blank=True)
    another_field = models.DateTimeField(blank=True, null=True)

    class Meta:
        abstract = True


class MyModel(models.Model, myMixin):
    ...
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

django mixins django-south

4
推荐指数
1
解决办法
554
查看次数

每页的 Wagtail 字段/数据?

在 wagtail 中,有没有一种好方法可以将相同的字段添加到每个页面模型中?我正在考虑几乎每个页面都希望实现的 SEO 数据字段和搜索元信息等内容。我似乎无法找到使用 Wagtail 执行此操作的好方法。

wagtail

0
推荐指数
1
解决办法
513
查看次数