在 dataclass(slots=True) 子类中调用 super() 时出现类型错误

2023-11-23

我试图从数据类调用超类方法slots=True在 Python 3.10.5 中。

from dataclasses import dataclass


@dataclass(slots=True)
class Base:
    def hi(self):
        print("Hi")


@dataclass(slots=True)
class Sub(Base):
    def hi(self):
        super().hi()


Sub().hi()

我收到以下错误。

Traceback (most recent call last):
  File "...", line 16, in <module>
    Sub().hi()
  File "...", line 13, in hi
    super().hi()
TypeError: super(type, obj): obj must be an instance or subtype of type

如果我删除它就可以正常工作slots=True from Sub,或者将其设为非数据类__slots__手动。如果我改为执行这些操作,错误仍然存​​在Base.

Sub.__mro__ is (<class '__main__.Sub'>, <class '__main__.Base'>, <class 'object'>) and isinstance(Sub(), Base) is True.


As seen here,数据类装饰器创建一个新的类对象,所以__closure__附于hi()与附加到装饰类的不同,因此super()由于依赖于__closure__.

因此,你需要改变super().hi() to super(Sub, self).hi().

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 dataclass(slots=True) 子类中调用 super() 时出现类型错误 的相关文章

  • 使用 python requests 模块时出现 HTTP 503 错误

    我正在尝试发出 HTTP 请求 但当前可以从 Firefox 浏览器访问的网站响应 503 错误 代码本身非常简单 在网上搜索一番后我添加了user Agent请求参数 但也没有帮助 有人能解释一下如何消除这个 503 错误吗 顺便说一句
  • 为什么从 Pandas 1.0 中删除了日期时间?

    我在 pandas 中处理大量数据分析并每天使用 pandas datetime 最近我收到警告 FutureWarning pandas datetime 类已弃用 并将在未来版本中从 pandas 中删除 改为从 datetime 模块
  • Pandas/Google BigQuery:架构不匹配导致上传失败

    我的谷歌表中的架构如下所示 price datetime DATETIME symbol STRING bid open FLOAT bid high FLOAT bid low FLOAT bid close FLOAT ask open
  • Python getstatusoutput 替换不返回完整输出

    我发现了这个很棒的替代品getstatusoutput Python 2 中的函数在 Unix 和 Windows 上同样有效 不过我觉得这个方法有问题output被构建 它只返回输出的最后一行 但我不明白为什么 任何帮助都是极好的 def
  • 跟踪 pypi 依赖项 - 谁在使用我的包

    无论如何 是否可以通过 pip 或 PyPi 来识别哪些项目 在 Pypi 上发布 可能正在使用我的包 也在 PyPi 上发布 我想确定每个包的用户群以及可能尝试积极与他们互动 预先感谢您的任何答案 即使我想做的事情是不可能的 这实际上是不
  • 删除flask中的一对一关系

    我目前正在使用 Flask 开发一个应用程序 并且在删除一对一关系中的项目时遇到了一个大问题 我的模型中有以下结构 class User db Model tablename user user id db Column db String
  • Python zmq SUB 套接字未接收 MQL5 Zmq PUB 套接字

    我正在尝试在 MQL5 中设置一个 PUB 套接字 并在 Python 中设置一个 SUB 套接字来接收消息 我在 MQL5 中有这个 include
  • 将 python2.7 与 Emacs 24.3 和 python-mode.el 一起使用

    我是 Emacs 新手 我正在尝试设置我的 python 环境 到目前为止 我已经了解到在 python 缓冲区中使用 python mode el C c C c将当前缓冲区的内容加载到交互式 python shell 中 显然使用了什么
  • 独立滚动矩阵的行

    我有一个矩阵 准确地说 是 2d numpy ndarray A np array 4 0 0 1 2 3 0 0 5 我想滚动每一行A根据另一个数组中的滚动值独立地 r np array 2 0 1 也就是说 我想这样做 print np
  • 如何使用 Pandas、Numpy 加速 Python 中的嵌套 for 循环逻辑?

    我想检查一下表的字段是否TestProject包含了Client端传入的参数 嵌套for循环很丑陋 有什么高效简单的方法来实现吗 非常感谢您的任何建议 def test parameter a list parameter b list g
  • Python 2:SMTPServerDisconnected:连接意外关闭

    我在用 Python 发送电子邮件时遇到一个小问题 me my email address you recipient s email address me email protected cdn cgi l email protectio
  • Python beautifulsoup 仅限 1 级文本

    我看过其他 beautifulsoup 得到相同级别类型的问题 看来我的有点不同 这是网站 我正试图拿到右边那张桌子 请注意表的第一行如何展开为该数据的详细细分 我不想要那个数据 我只想要最顶层的数据 您还可以看到其他行也可以展开 但在本例
  • ES6继承:使用`super`访问父类的属性

    JavaScript 的super关键字 当我在 Chrome Babel TypeScript 上运行代码时 得到了不同的结果 我的问题是哪个结果是正确的 规范的哪一部分定义了这种行为 下面的代码 class Point getX con
  • 如何通过索引列表从 dask 数据框中选择数据?

    我想根据索引列表从 dask 数据框中选择行 我怎样才能做到这一点 Example 假设我有以下 dask 数据框 dict A 1 2 3 4 5 6 7 B 2 3 4 5 6 7 8 index x1 a2 x3 c4 x5 y6 x
  • 如何使用 pybrain 黑盒优化训练神经网络来处理监督数据集?

    我玩了一下 pybrain 了解如何生成具有自定义架构的神经网络 并使用反向传播算法将它们训练为监督数据集 然而 我对优化算法以及任务 学习代理和环境的概念感到困惑 例如 我将如何实现一个神经网络 例如 1 以使用 pybrain 遗传算法
  • 加快网络抓取速度

    我正在使用一个非常简单的网络抓取工具抓取 23770 个网页scrapy 我对 scrapy 甚至 python 都很陌生 但设法编写了一个可以完成这项工作的蜘蛛 然而 它确实很慢 爬行 23770 个页面大约需要 28 小时 我看过scr
  • 从 NumPy ndarray 中选择行

    我只想从 a 中选择某些行NumPy http en wikipedia org wiki NumPy基于第二列中的值的数组 例如 此测试数组的第二列包含从 1 到 10 的整数 gt gt gt test numpy array nump
  • 仅第一个加载的 Django 站点有效

    我最近向 stackoverflow 提交了一个问题 标题为使用mod wsgi在apache上多次请求后Django无限加载 https stackoverflow com questions 71705909 django infini
  • 如何解决 PDFBox 没有 unicode 映射错误?

    我有一个现有的 PDF 文件 我想使用 python 脚本将其转换为 Excel 文件 目前正在使用PDFBox 但是存在多个类似以下错误 org apache pdfbox pdmodel font PDType0Font toUnico
  • Scipy Sparse:SciPy/NumPy 更新后出现奇异矩阵警告

    我的问题是由大型电阻器系统的节点分析产生的 我基本上是在设置一个大的稀疏矩阵A 我的解向量b 我正在尝试求解线性方程A x b 为了做到这一点 我正在使用scipy sparse linalg spsolve method 直到最近 一切都

随机推荐

  • Lifecycle @OnLifecycleEvent() 已弃用,您应该使用 LifecycleEventObserver 或 DefaultLifecycleObserver [重复]

    这个问题在这里已经有答案了 答案在底部 我认为这对你有用 生命周期事件观察者 Firstly 你应该实现这个 dependencies implementation androidx lifecycle lifecycle extensio
  • 错误:项目文件必须在引用列表中包含 .NET Framework 程序集“WindowsBase、PresentationCore、PresentationFramework”

    我在带有 C 的 Windows 窗体应用程序中使用 WPF 跟进问题 将一组实线 虚线笔添加到组合框 Error 项目文件必须在引用列表中包含 NET Framework 程序集 WindowsBase PresentationCore
  • MongoDB中聚合方法的返回类型是什么?

    我试图根据 mongo 的聚合方法获得一组结果 并根据返回值尝试在所有结果中添加一个属性 聚合方法为我提供了最高的数字 综合体中特定销售点一个月内的销售额 我想将属性 HighestSales 添加到它返回的那些文档中 我的查询是 var
  • 如何正确初始化全局变量? [复制]

    这个问题在这里已经有答案了 我正在编写一个小学生项目 并遇到了一个问题 我有一些全局变量 需要在一些源文件中使用它 但我收到错误对变量名的未定义引用 例如 我们创建三个源文件 tst1 h extern int global a void
  • mongo - 无法连接到服务器 127.0.0.1:27017

    我来自 riak 和 redis 在这些服务启动或交互方面我从未遇到过问题 这是 mongo 的一个普遍问题 我很无能 重新启动没有帮助 我是 mongo 新手 mongo MongoDB shell version 2 2 1 conne
  • AVFoundation 元数据对象类型

    我尝试使用 AVFoundation 来读取带有以下代码的条形码 但我不断收到以下错误 帮助说明原因将不胜感激 提前致谢 Create camera view session AVCaptureSession var layer self
  • Toopay/bootstrap-markdown 的预览按钮不起作用

    我正在用 symfony 创建一个表单 我的表单的一个字段是textarea我想通过使用让它看起来更好引导降价 根据文档 我设置了属性 data provide to markdown 如下图所示 form row form descrip
  • Rails 从 Helper 模块返回多个 content_tag

    我写了以下助手 def section to html block case block 0 downcase when paragraph block shift block each do value return content ta
  • 如何创建可变变量?

    我知道一些其他语言 比如PHP 支持 变量变量名 的概念 即字符串的内容可以用作变量名的一部分 我听说这通常是一个坏主意 但我认为它可以解决我在 Python 代码中遇到的一些问题 在Python中可以做这样的事情吗 会出现什么问题 If
  • 如何使“过期”的 Firebase 实例 ID 令牌失效

    AFAIK Firebase实例令牌将在以下4种情况下刷新 应用程序删除实例ID 应用程序已在新设备上恢复 用户卸载 重新安装应用程序 用户清除应用数据 假设用户使用令牌 A 作为他的 FCM 地址 每次登录应用程序时 他都会将令牌 A 以
  • “找不到 CFBundle/CFPlugIn 的可执行文件”错误

    找不到 CFBundle CFPlugIn 0x432bfa0 的可执行文件 未加载 在 CFBundle CFPlugIn 0x432bfa0 中找不到工厂 C5A4CE5B 0BB8 11D8 9D75 0003939615B6 的函数
  • jqGrid - 动态设置标题

    我有captionjqGrid 定义中的参数集 我想知道是否有一种方法可以根据情况动态设置它classjqGrid 插件所附加的表元素的属性 HTML 1 table class view table div div HTML 2 tabl
  • 在 Linux 机器上创建自解压 zip 存档

    由于许多我不会涉及的限制 我必须在 Linux 机器上创建一个自解压 ZIP 存档 生成的存档只能在 Windows 上执行 这是可能吗 如果是这样 什么工具可以完成这项工作 背景 当用户从我的 Linux 盒子下载安装包时 我需要使用某个
  • 如果在单独的类中定义异常子句,Camel 异常处理将不起作用

    我正在尝试构建一个具有多个骆驼路线的应用程序 这些路线在内部重用许多常见路线 因此 我尝试将路由分隔在几个不同的路由生成器类中 然后在需要的地方连接路由 例如 与发送电子邮件有关的所有路由都进入 EmailRouteBuilder 类 而处
  • 使用 Laravel (Localhost) 通过表单将文件发送到电子邮件

    Laravel 新手 所以要友善 哈哈 我的 mail php 配置是正确的 并且可以成功接收电子邮件以进行 gmail 的文本输入 但不确定如何完成文件任务 我希望得到一些帮助或参考链接 提前致谢 代码在routes php中 Route
  • iOS 8 CoreBluetooth 已弃用 RSSI 方法

    所以从阅读CBPeripheralDelegate文档 看来RSSI and peripheralDidUpdateRSSI error iOS 8 中已弃用 Xcode 警告 iOS 8 0 中已弃用 rssi 我注意到我的信号强度指示器
  • 测量 Cortex m7 上的时钟周期数

    我一直在测量 Cortex m4 上的时钟周期计数 现在想在 Cortex m7 上进行测量 我使用的板子是STM32F746ZG 对于 m4 一切都适用 volatile unsigned int DWT CYCCNT volatile
  • R光栅包将图像分割成多个

    我有一个如下图 它是2579 2388像素 假设它的左下角位于 0 0 我想从该图像创建多个图像 如下所示并将它们保存在工作文件夹中 每个图像的大小为 100 100 像素 每个图像将通过其左下角坐标保存 第一张图像的左下角位于 0 0 右
  • 将通用列表转换为 CSV 字符串

    我有一个整数值列表 List 并且想生成一串逗号分隔值 即列表中的所有项目输出到单个逗号分隔列表 我的想法 1 将列表传递给方法 2 使用stringbuilder迭代列表并追加逗号 3 测试最后一个字符 如果是逗号 则将其删除 你怎么看
  • 在 dataclass(slots=True) 子类中调用 super() 时出现类型错误

    我试图从数据类调用超类方法slots True在 Python 3 10 5 中 from dataclasses import dataclass dataclass slots True class Base def hi self p