我试图使用TitleTrigger的父类WordTrigger的方法is_word_in() ,但我得到一个is_word_isNameError没有定义。 我觉得我错过了一个关键的继承概念,我该怎么纠正这个?

class NewsStory(object):
    def __init__(self, guid, title, subject, summary, link):
        self.guid = guid
        self.title = title
        self.subject = subject
        self.summary = summary
        self.link = link
    def get_guid(self):
        return self.guid
    def get_title(self):
        return self.title
    def get_subject(self):
        return self.subject
    def get_summary(self):
        return self.summary
    def get_link(self):
        return self.link

class WordTrigger(Trigger):
    def __init__(self, word):
        self.word = word.lower()
    def is_word_in(self, text):
        words = text.split(' ')
        for word in words:
            word.strip(string.punctuation).lower()
            if self.word == word:
                return True
        return False

class TitleTrigger(WordTrigger):
    def __init__(self, word):
        WordTrigger.__init__(self, word)
    def evaluate(self, story):
        self.title = story.get_title()
        if is_word_in(self.title):
            return True
        return False

trigger = TitleTrigger('Soft')
trigger.evaluate(NewsStory('', 'I prefer pillows that are soft.', '', '', ''))

===============>>#1 票数:3 已采纳

您使用的功能不正确,您需要使用self调用它:

if self.is_word_in(self.title):
   ^^^^^ 

注意额外的self. is_word_in之前,它用于表示您的意思是实例的方法。

  ask by Jordan translate from so

未解决问题?本站智能推荐:

1回复

从子类中调用父方法

我在类继承方面遇到了一些困难。 我有5个类,所有这些类都使用抽象化的create,update和delete方法访问数据库,以便可以将它们推入MasterDatabase类,然后让它们全部扩展该类。 我遇到的问题是基本的继承概念。 我通过SOF进行了调查,许多人提出了类似的问题,但并不是完
1回复

在Python中调用父类中的子方法

注意:它不是在子类中调用父方法.super() 我有三个班,让我们说Parent , Child1和Child2 。 Child1和2都有方法Cry()和Parent类有另一个方法,例如MakeChildrenStopCry() ,其中调用Cry() 。 但是, Parent类没有方法
1回复

Python-父类(ElementTree)类的调用方法很困难

这是我导入ElementTree的方法: 这是我班的摘录: init和save_xml可以正常工作。 每当我需要在方法中使用Foo对象的根目录(例如,将某些内容附加到Foo ElementTree的根目录)时,事情就会变得令人困惑。 这将产生此错误: 如何在
2回复

如何从python的私有类继承父类属性? [关闭]

很难说出这里的要求。 这个问题是模棱两可的,模糊的,不完整的,过于广泛的或修辞性的,不能以目前的形式合理地回答。 如需帮助澄清此问题以便可以重新打开, 请访
1回复

如何创建一个继承其他两个类的方法的类,并将其自己和方法共享给它们

所以我试图在Python 2.7中按照以下方式做一些事情: 所以这里的困境就是这样我希望Report类和Print类能够从MasterClass访问方法和变量。 我能以某种方式这样做吗?
3回复

在Python中从父类调用方法

谁能用正确的语法帮助我从父类中调用我的方法__get_except_lines(...) ? 我有一个带有如下所示方法的类。 此特定方法有2个下划线,因为我不希望“用户”使用它。 在一个单独的文件中,我有另一个从该类继承的类。 而且我得到一个属性错误,这确实使我感到困惑:
3回复

方法__getattr__不是从父类继承的

尝试将机械化子类化。浏览器类: 但是当我做这样的事情时: 然后我得到一个错误: 浏览器类具有覆盖方法__getattr__ ,如下所示: 为什么我的类或实例不像父类那样获得此方法?
1回复

为什么我定义的“ Dog”类的“ walk”方法不能被“ Bulldog”或“ Russell Terrier”子类继承?

在我的最后一行代码中,当我调用'walk()'方法时,什么都没有发生。 但是,当我在控制台中运行它时,出现错误: 追溯(最近一次呼叫最近):AttributeError中的文件“”,第2行,“ Bulldog”对象没有属性“ walk”
1回复

如何使用自己的方法扩展外部库中的类?

我有一些特殊情况需要在Django中进行测试。 我正在尝试通过编写自己的测试用例来扩展现有的django测试。 这是我目前的做法。 尽管这可行,但将方法定义为以self为第一个参数的函数,然后将其附加到TestCase感觉很不雅致。 有没有更好的方法来用我自己的方法TestCase
2回复

在一个类中使用python方法检查另一个类对象中的变量是否相同

我有2个文件,我正在使用python类方法从中解析数据并创建sql INSERT语句。 在我的两个文件中,我都有一个基因名称列表。 第一个文件是20个基因名称的简单列表,面板名称始终相同。 第二个文件包含有关基因的更多信息,每个基因名称将有多个条目。 目前我的代码如下: 我的