You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

super().__init__传参报错:实参数量不符及类变量引用疑问

问题解答

为什么提示传入4个参数?

Python 中调用 super().__init__() 时,不需要手动传入self——super 返回的代理对象会自动把当前实例作为第一个参数传递给父类的__init__方法。

你代码里的调用super().__init__(self, self.event_pattern, stm),相当于多传了一个self,实际传递的参数是:

  • 自动传入的当前实例(对应父类__init__的self)
  • 手动传入的self
  • self.event_pattern
  • stm

总共4个参数,但父类__init__只定义了3个位置参数(self, event_pattern, stm),所以触发了TypeError。

修正后的调用代码应该是:

super().__init__(self.event_pattern, stm)

能不能在__init__方法中引用类变量event_pattern?

完全可以。类变量属于整个类,实例方法(包括__init__)有两种合法的访问方式:

  • 使用self.event_pattern:实例会优先查找自身属性,找不到时自动去所属类中查找,这里因为你的实例没有重定义event_pattern,所以会直接拿到类变量的值
  • 使用SomeClassName.event_pattern:直接从类本身获取类变量,逻辑更明确

你代码里用self.event_pattern的写法完全合规,没有问题。

内容的提问来源于stack exchange,提问作者joeUser555

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 02:43:28