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

时间:2015-05-16 19:07:16

标签: python class inheritance methods parent-child

我正在尝试使用is_word_in()的父类TitleTrigger中的WordTrigger方法,但我得到NameErroris_word_isclass 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.', '', '', '')) 没有定义的。我觉得我错过了继承的关键概念,我该如何纠正这个?

update()

1 个答案:

答案 0 :(得分:3)

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

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

请注意self.之前的其他is_word_in,用于表示您的意思是实例的方法。