我正在尝试使用is_word_in()
的父类TitleTrigger
中的WordTrigger
方法,但我得到NameError
说is_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.', '', '', ''))
没有定义的。我觉得我错过了继承的关键概念,我该如何纠正这个?
update()
答案 0 :(得分:3)
您使用的功能不正确,您需要使用self
:
if self.is_word_in(self.title):
^^^^^
请注意self.
之前的其他is_word_in
,用于表示您的意思是实例的方法。