[英]Is it possible to access the variable from a method of a superclass in a subclass?
[英]How to access the member and variable of superclass from the subclass in python?
我有一個密碼
class Trigger(object):
def evaluate(self,story):
Trigger.stroy=story
WordTrigger.isWordin(story)
raise NotImplementedError
class WordTrigger(Trigger):
def __init__(self,word):
self.word=word
def isWordin(self, text):
rep = text.replace(string.punctuation, '')
toLower = rep.lower()
text = toLower.split(' ')
if(text in self.word):
return True
else:
return False
class TitleTrigger(WordTrigger):
...
可變的story
是一堂課
class NewsStory: def __init__(self,guid, title, subject, summary, link): self.guid=guid self.title=title self.subject=subject self.summary=summary self.link=link def getGuid(self): return self.guid def getTitle(self): return self.title def getSubject(self): return self.subject def getSummary(self): return self.summary def getLink(self): return self.link
story=NewsStory(...)
如何在子類TitleTrigger
訪問變量story
及其內置的def函數?
我可以想到兩種方法。 一種使用類變量,另一種使用初始化變量。 這是一個同時執行這兩個操作的示例:
class NewsStory:
def __init__(self,guid, title, subject, summary, link):
self.guid=guid
self.title=title
self.subject=subject
self.summary=summary
self.link=link
def getGuid(self):
return self.guid
def getTitle(self):
return self.title
def getSubject(self):
return self.subject
def getSummary(self):
return self.summary
def getLink(self):
return self.link
class Trigger(object):
story = NewsStory("Guide","title", "subject", "summary","link")
def __init__(self):
self.mystory = NewsStory("Guide","title", "subject", "summary","link")
def evaluate(self,story):
Trigger.story=story
WordTrigger.isWordin(story)
raise NotImplementedError
class WordTrigger(Trigger):
def __init__(self,word):
super(WordTrigger, self).__init__()
self.word=word
def isWordin(self, text):
rep = text.replace(string.punctuation, '')
toLower = rep.lower()
text = toLower.split(' ')
if(text in self.word):
return True
else:
return False
class TitleTrigger(WordTrigger):
story = WordTrigger.story
def __init__(self, word):
super(TitleTrigger, self).__init__(word)
if __name__ == "__main__":
print(TitleTrigger.story)
tt = TitleTrigger("hello")
print(tt.mystory)
story變量是一個類變量,而mystory變量是一個可訪問的實例變量,因為您可以使用super(WordTrigger, self).__init__()
之類的方法初始化超類,然后才可以使用超類變量。 希望對您有所幫助
編輯:要從NewsStory訪問和更改標題,您可以執行以下操作:
print(tt.mystory.title)
tt.mystory.title = "New title"
print(tt.mystory.title)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.