无法访问父 class 中定义的方法

Can't access method defined in parent class

我正在尝试使用来自 TitleTrigger 的父 class WordTrigger 的方法 is_word_in() 但我得到一个 NameErroris_word_is 未定义。我觉得我缺少继承的一个关键概念,我该如何纠正它?

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.', '', '', ''))

您使用的函数不正确,您需要使用 self:

调用它
if self.is_word_in(self.title):
   ^^^^^ 

注意is_word_in前的附加self.,用来表示你指的是实例的方法。