首页 > 解决方案 > Python 和带有 Super 的 Mixins

问题描述

我有以下课程

from somewhere import ParentClass
from mixin_file import Mixin1 and Mixin2

class Test(Mixin1, Mixin2, ParentClass):
    def __init__(self):
        super(Test, self).__init__()

在 mixin_file

from abc import ABCMeta, abstractmethod

class Mixin1(object):
    __metaclass__ = ABCMeta
    @abstractmethod
    def do_something(self):
        pass

class Mixin2(object):
    def hello(self):
        pass

当我跑步时

x = Test()

错误

TypeError:__init__() takes exactly 0 arguments (2 given)

初始化“x”时是否需要传递 Mixin?我不太清楚这种行为。

标签: pythontypeerrormixinsinitsuper

解决方案


操作顺序最终成为这里的问题。之后我需要添加mixins

class Test(Mixin1, Mixin2, ParentClass):

也去

class Test(ParentClass, Mixin1, Mixin2):

推荐阅读