无法访问父 class 中定义的方法
Can't access method defined in parent class
我正在尝试使用来自 TitleTrigger
的父 class WordTrigger
的方法 is_word_in()
但我得到一个 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.', '', '', ''))
您使用的函数不正确,您需要使用 self
:
调用它
if self.is_word_in(self.title):
^^^^^
注意is_word_in
前的附加self.
,用来表示你指的是实例的方法。
我正在尝试使用来自 TitleTrigger
的父 class WordTrigger
的方法 is_word_in()
但我得到一个 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.', '', '', ''))
您使用的函数不正确,您需要使用 self
:
if self.is_word_in(self.title):
^^^^^
注意is_word_in
前的附加self.
,用来表示你指的是实例的方法。