首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AttributeError:“超级”对象没有属性“word_weighting”

AttributeError:“超级”对象没有属性“word_weighting”
EN

Stack Overflow用户
提问于 2021-10-19 19:23:48
回答 1查看 1.3K关注 0票数 0

我有一个高级FTM

代码语言:javascript
复制
class FTM:
    def __init__(self,word_weighting = 'normal'):
        self.word_weighting = word_weighting
    
    def get_sparse_global_term_weights(self, word_weighting):
        pass

和继承自FTM的子类。

代码语言:javascript
复制
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 = super().word_weighting)

运行此代码,将得到以下错误:

代码语言:javascript
复制
AttributeError: 'super' object has no attribute 'word_weighting'

我已经初始化了属性。为什么我会有这个错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-07 15:27:21

超级()只从父类返回一系列绑定方法

看看这个linkhttps://realpython.com/python-super/#a-super-deep-dive

通过包含实例化对象,

()返回绑定方法:绑定到对象的方法,该方法给出对象的上下文,例如任何实例属性。如果不包括此参数,则返回的方法只是一个函数,与对象的上下文无关。

不能返回类的属性,您需要为"word_weighting“定义一个属性。

代码语言:javascript
复制
@property
def word_weighting(self):
    return self._word_weighting # attrib: 'word_weighting' was changed it to '_word_weighting'
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69636611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档