我正在为Python类设置问题。我们正在被引入到类。我试图(A)用单个参数string创建一个名为Sentence的类,并创建一个将该句子存储为字符串的实例变量。 (B)然后为该类指定访问器方法:getSentence(将该句子作为字符串返回),getWords(返回句中的单词列表),getLength(返回句子中的字符数),getNumWords(返回句子中的单词数量)。以下是我迄今所尝试的:Python类,实例变量和访问器方法
line = "This Tuesday is Election Day"
class Sentence:
def __init__(self, text, string, words, length, num):
self.text = sentence
self.string = str(self.text)
self.words = self.text.split()
self.length = len(self.text)
self.num = len(self.words)
def getSentence(self):
return self.string
def getWords(self):
return self.words
def getLength(self):
return self.length
def getNumWords(self):
return self.num
line.getWords()
谢谢你的时间。
下面是更新的代码工作:
class Sentence:
def __init__(self, string):
self.astring = str(string)
def getSentence(self):
return self.astring
def getWords(self):
return (self.astring).split()
def getLength(self):
return len(self.astring)
def getNumWords(self):
return len(self.getWords())
string = Sentence("The Election is tomorrow")
print (string.getSentence())
print (string.getWords())
print (string.getLength())
print (string.getNumWords())
它工作?问题是什么? – tdelaney
它不起作用,我想象它。我在上面创建了一个示例字符串,“This Tuesday ...”以及当我输入'line'时。getSentence()'我收到'AttributeError:'str'对象没有属性'getSentence'“ – Babeeshka
这是你的第一个问题。您想要将该字符串传递给该类以进行进一步处理。一个简单的测试就是'foo =句子(行)'。这会失败,因为'Sentence .__ init__'需要一堆变量。但是'string,words,length,num'是由类来计算的,所以你不应该把它们传递给初始值设定项。所以把它们拿出来。然后你会遇到下一个问题....这就是所谓的“测试驱动开发”。编写破解测试,修复问题,编写更多测试。 – tdelaney