python - 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?我不太清楚这种行为。
解决方案
操作顺序最终成为这里的问题。之后我需要添加mixins
class Test(Mixin1, Mixin2, ParentClass):
也去
class Test(ParentClass, Mixin1, Mixin2):
推荐阅读
- django - Django过滤时值无或不或某些值
- swift - 从没有 rawValue 的 rawValue 构造枚举
- json - 通过 WebRequest 下载带有 JSON 响应的文件作为重定向
- python - 现有数据帧上的快速傅立叶变换显示出意想不到的结果
- xml - WCF 自定义标头序列化在每个字段中都有不需要的命名空间
- java - 为什么 imageCapture.takePicture 永远不会进入 ImageCapture.OnImageSavedCallback() 的 onImageSaved()?
- javascript - 如何在 React Native 中保存 FlatList 中的项目?
- arrays - 来自字符串文本的暗淡变量
- json - vs-code "JSON: Max Item Computed" 设置实际上是做什么的?
- javascript - JS循环基于数组中的数据数量