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

Python类继承中super对象访问word_weighting属性报AttributeError问题问询

报错原因分析
  • super() 是Python提供的父类方法代理对象,仅用于调用父类中定义的方法,不支持访问实例属性。你在父类FTM的构造方法中给self.word_weighting赋值,该属性是绑定在子类FLSA的实例对象上的,和super()代理对象没有关联。
  • 代码中super().word_weighting的写法尝试从super代理对象上查找不存在的实例属性,因此触发AttributeError。
修复方案

直接通过实例本身self访问继承得到的word_weighting属性即可,修改后的子类代码如下:

class FLSA(FTM):
    def __init__(self, word_weighting='normal'):
        super().__init__(word_weighting = word_weighting)
        self.sparse_global_term_weighting = super().get_sparse_global_term_weights(word_weighting = self.word_weighting)
补充说明

所有实例属性无论在父类还是子类中赋值,都是绑定在当前实例对象上的,直接通过self.属性名就可以正常访问,只有当你需要调用父类中被子类重写的同名方法时,才需要使用super()代理调用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 23:15:03