如何让子类自动调用父类__init__?

2024-04-10

我有一个名为 CacheObject 的类,许多类都从它扩展。

现在我需要在该类的所有类中添加一些通用的东西,所以我写了这个

class CacheObject(object):

    def __init__(self):
        self.updatedict = dict() 

但子类没有获得 updatedict 属性。我知道调用 super init 函数在 python 中是可选的,但是有没有一种简单的方法可以强制所有类都添加 init 而不是遍历所有类并一一修改它们?


我所处的情况是,我希望类在调用自己的构造函数之前始终按顺序调用其基类的构造函数。以下是 Python3 代码,应该可以完成您想要的操作:

  class meta(type):
    def __init__(cls,name,bases,dct):
      def auto__call__init__(self, *a, **kw):
        for base in cls.__bases__:
          base.__init__(self, *a, **kw)
        cls.__init__child_(self, *a, **kw)
      cls.__init__child_ = cls.__init__
      cls.__init__ = auto__call__init__

  class A(metaclass=meta):
    def __init__(self):
      print("Parent")

  class B(A):
    def __init__(self):
      print("Child")

为了说明这一点,它的行为如下:

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

如何让子类自动调用父类__init__? 的相关文章

  • 如何使用 BeautifulSoup 从表中选择特定行?

    So I have a question related to a previous question but I realized I needed to go one level more to get an 11 digit NDC
  • 在 Pandas 中,如何从基于另一个数据框的数据框中删除行?

    我有 2 个数据框 一个名为 USERS 另一个名为 EXCLUDE 他们都有一个名为 电子邮件 的字段 基本上 我想删除 USERS 中包含 EXCLUDE 中包含电子邮件的每一行 我该怎么做 您可以使用boolean indexing
  • TensorFlow:带有轴选项的 bincount

    在 TensorFlow 中 我可以使用 tf bincount 获取数组中每个元素的计数 x tf placeholder tf int32 None freq tf bincount x tf Session run freq feed
  • 在 python 3 中使用子进程

    我使用 subprocess 模块在 python 3 中运行 shell 命令 这是我的代码 import subprocess filename somename py in practical i m using a real fil
  • Python 是解释型的还是编译型的,或者两者兼而有之?

    据我了解 An 解释的语言是由解释器 将高级语言转换为机器代码然后执行的程序 实时运行和执行的高级语言 它一次处理一点程序 A compiled语言是一种高级语言 其代码首先由编译器 将高级语言转换为机器代码的程序 转换为机器代码 然后由执
  • Python 使用 Gstreamer 访问 USB 麦克风时遇到问题,以便在 Raspberry Pi 上使用 Pocketsphinx 执行语音识别

    所以Python的表现就好像它根本听不到我的麦克风发出的任何声音 问题就在这里 我有一个Python 2 7 假设使用的脚本Gstreamer通过以下方式访问我的麦克风并为我进行语音识别口袋狮身人面像 我在用着脉冲音频我的设备是树莓派 我的
  • 如何在VIM中设置文件的正确路径?

    每当我击中 pwd在 vim 中命令总是返回路径C Windows system32 即使我在桌面上的 Python 文件中 所以每当我跑步时 python 命令返回 python can t open file Users myname
  • 如何在Python中高效地添加稀疏矩阵

    我想知道如何在Python中有效地添加稀疏矩阵 我有一个程序 可以将大任务分解为子任务 并将它们分配到多个 CPU 上 每个子任务都会产生一个结果 一个 scipy 稀疏矩阵 格式为 lil matrix 稀疏矩阵尺寸为 100000x50
  • 使用 Python 计算 Spark 中成对 (K,V) RDD 中每个 KEY 的平均值

    我想与 Python 共享这个特定的 Apache Spark 解决方案 因为它的文档非常贫乏 我想通过 KEY 计算 K V 对 存储在 Pairwise RDD 中 的平均值 示例数据如下所示 gt gt gt rdd1 take 10
  • CNTK 抱怨 LSTM 中的动态轴

    我正在尝试在 CNTK 中实现 LSTM 使用 Python 来对序列进行分类 Input 特征是固定长度的数字序列 时间序列 标签是 one hot 值的向量 Network input input variable input dim
  • 在相同任务上,Keras 比 TensorFlow 慢

    我正在使用 Python 运行斩首 DCNN 本例中为 Inception V3 来获取图像特征 我使用的是 Anaconda Py3 6 和 Windows7 使用 TensorFlow 时 我将会话保存在变量中 感谢 jdehesa 并
  • Alembic:如何迁移模型中的自定义类型?

    My User模型是 class User UserMixin db Model tablename users noinspection PyShadowingBuiltins uuid Column uuid GUID default
  • Python:我不明白 sum() 的完整用法

    当然 我明白你使用 sum 与几个数字 然后它总结所有 但我正在查看它的文档 我发现了这一点 sum iterable start 第二个参数 start 的作用是什么 这太尴尬了 但我似乎无法通过谷歌找到任何示例 并且对于尝试学习该语言的
  • 为什么我应该使用 WSGI?

    使用 mod python 一段时间了 我读了越来越多关于 WSGI 有多好的文章 但没有真正理解为什么 那么我为什么要切换到它呢 有什么好处 这很难吗 学习曲线值得吗 为了用 Python 开发复杂的 Web 应用程序 您可能会使用更全面
  • `pyqt5'错误`元数据生成失败`

    我正在尝试安装pyqt5使用带有 M1 芯片和 Python 3 9 12 的 mac 操作系统 我怀疑M1芯片可能是原因 我收到一个错误metadata generation failed 最小工作示例 directly in the t
  • Django - 提交具有同一字段多个输入的表单

    预警 我对 Django 以及一般的 Web 开发 非常陌生 我使用 Django 托管一个基于 Web 的 UI 该 UI 将从简短的调查中获取用户输入 通过我用 Python 开发的一些分析来提供输入 然后在 UI 中呈现这些分析的可视
  • 在 Windows 上使用带有对数刻度的 matplotlib 时出现 Unicode 错误

    我正在使用 python 2 6 和 matplotlib 如果我运行 matplotlib 库页面中提供的示例 histogram demo py 它工作正常 我已经大大简化了这个脚本 import numpy as np import
  • 使用 NLP 进行地址分割

    我目前正在开发一个项目 该项目应识别地址的每个部分 例如来自 str Jack London 121 Corvallis ARAD ap 1603 973130 输出应如下所示 street name Jack London no 121
  • 计算互相关函数?

    In R 我在用ccf or acf计算成对互相关函数 以便我可以找出哪个移位给我带来最大值 从它的外观来看 R给我一个标准化的值序列 Python 的 scipy 中是否有类似的东西 或者我应该使用fft模块 目前 我正在这样做 xcor
  • 使用 Python 将对象列表转为 JSON

    我在转换时遇到问题Object实例到 JSON ob Object list name scaping myObj base url u number page for ob in list name json string json du

随机推荐

  • 结构体指针数组

    我试图了解我的代码是否正确 我需要声明一个指向结构的指针数组 创建一个新结构并分配值并打印它们 在我看来 我没有正确声明指针数组 我需要知道我做错了什么 谢谢 我收到此编译错误 错误 people 未声明 首次在此函数中使用 我尝试插入 s
  • 将小吃栏移动到底部栏上方

    我在新的底栏上遇到了一些问题 我无法强制将小吃栏移动到底部栏上方 这就是设计指南告诉我应该的方式https www google com design spec components bottom navigation html botto
  • 提高由整数商定义的变量的精度

    假设我有以下程序 program derp implicit none integer parameter ikind selected real kind 18 real kind ikind a 2 0 3 0 print a end
  • System.getproperty("spring.profiles.active") 在 JPA 实体监听器中总是获取 Null

    我正在尝试获取 Spring 活动配置文件JPA实体监听器使用System getproperty spring profiles active 但它总是返回空配置文件 但是我已经检查了服务器并且配置文件配置正确 我尝试使用环境获取 Spr
  • 如何更改过去的提交以包含丢失的文件?

    我已提交更改 但忘记将文件添加到更改集中 在其他提交之后 我意识到该文件现在从HEAD 4 commit 如何重写以前的提交以包含丢失的文件 我意识到人们可以谷歌并来这里找到一个更简单的答案 如果这只是最后一次提交怎么办 OP的问题是修复历
  • 如何使用 Spring Boot 和 Cassandra 将枚举持久化为序数?

    我已添加到实体的枚举字段 CassandraType type DataType Name INT 然而 在发送到 Cassandra 的语句中使用的不是枚举的序数 而是字符串表示形式 因此我收到以下错误 org springframewo
  • POI:意外的记录类型 org.apache.poi.hssf.record.HyperlinkRecord

    我正在执行一项简单的任务 读取 Excel 文件并将其转换为对象 不过 我在读取 Excel 文件 xls 时遇到问题 我将从外部系统接收它 也许他们自动生成它 如果我打开它并进行简单的保存 无论是否更改 Excel 文件中的任何内容 我的
  • C++ tbb_debug.dll 丢失

    我是 openCV 的新手 我尝试遵循一些教程 一切工作正常 直到我包含 opencv2 imgproc imgproc hpp 并使用 filter2D 函数 当我启动我的程序时 出现以下错误 程序无法启动 因为您的计算机缺少 tbb d
  • DataContractSerializer 和已知类型

    我正在代码中序列化一个对象 不是通过 WCF 调用 并且我对已知类型有点沉迷 我已将它们与 WCF 一起使用 但没有将 DataContract 序列化器作为 独立 序列化器使用 当我运行下面的代码时出现异常 我希望它运行时不会出现错误 因
  • WebStorm 和 TypeScript:如何导航到包的 JS 源文件?

    假设在我的 TypeScript 项目中 我使用 Express 和如下方法 response send Hello 我想看看如何send 方法被实施 但是 当我在 WebStorm 中按住 Ctrl 键并单击方法名称时 它会将我带到 d
  • 临时文件 asp.net resx 文件,“已添加具有相同密钥的项目”

    几周前 我们将服务器从 NET 4 5 更新到 4 5 1 并将代码更改为作为 优化代码 运行 在即将发布的版本中 我们开始在日志中收到奇怪的错误消息 并且网站刚刚崩溃 System ArgumentException An item wi
  • php数组加载到javascript中

    所以我是个 php javascript 菜鸟 我正在尝试将完整的 php 数组加载到 javascript 数组中 我为 JavaScript 写了这个 var names new Array for var i 0 i lt 48 i
  • Java 中的非空白匹配

    我想检测其中包含非空白字符的字符串 现在我正在尝试 Pattern matches S city 但它似乎不起作用 有没有人有什么建议 我知道我可以修剪字符串并测试它是否等于空字符串 但我宁愿这样做 您认为正则表达式到底匹配什么 Try P
  • ruby - 文件私有方法

    在ruby中 有没有办法定义一个方法 该方法对文件 或模块 中的每个类都可见 但对需要该文件的文件不可见 相关 但不完全相同 我们可以重新定义一个方法 例如标准库的类中的方法 以便此重新定义仅在当前文件中可见吗 所有其他文件应查看原始定义
  • Python:检查对象是否可以原子方式pickle

    检查对象是否可以被原子腌制的准确方法是什么 当我说 原子腌制 时 我的意思是不考虑它可能引用的其他对象 例如 这个列表 l threading Lock 不是一个可腌制的对象 因为它指的是Lock这是不可腌制的 但从原子角度来看 这个列表本
  • 使用 Microsoft bot 框架下载文件(pdf/图像)

    我想下载文档 图像 文档 图像位于互联网上 我给出了它的路径 但它不起作用 但是 如果我只是评论附件部分 我就能从 BOT 那里得到 嗨 让控制器像这样 BotAuthentication public class MessagesCont
  • System.setProperty("sun.net.http.allowRestrictedHeaders", "true") 在詹金斯中不起作用

    我正在尝试在 http 请求标头中发送原始标头 但是当我获取其值时 我得到的是 null 而不是我在原始标头中设置的 url 另外 我还使用以下命令启用了受限标头作为詹金斯作业中请求标头的一部分发送 System setProperty s
  • 底图图层组的传单图层控制

    简而言之 我需要由传单图层控件控制图层组 一次两到三个 在这个JSFiddle http jsfiddle net knu2xs FH9VF 3 当更改底图时 水力叠加层需要始终保持在各种底图之上 如果您运行并使用右上角的图层控件 您会注意
  • Bash 中变量的大括号扩展

    我想在 Bash 中扩展一个变量 这是我的例子 variable 1 2 3 echo variable 预期输出 1 2 3 实际输出 1 2 3 由于 bash 执行命令行扩展的顺序 扩展不起作用 如果您阅读手册页 您会看到顺序是 支撑
  • 如何让子类自动调用父类__init__?

    我有一个名为 CacheObject 的类 许多类都从它扩展 现在我需要在该类的所有类中添加一些通用的东西 所以我写了这个 class CacheObject object def init self self updatedict dic