私は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(line)'です。 'Sentence .__ init__'にはたくさんの変数が必要なので失敗します。しかし 'string、words、length、num'はクラスによって計算されるので、初期化子に渡すべきではありません。だから彼らを取り除く。次に、次の問題に遭遇します。これは「テスト駆動開発」と呼ばれます。テストを書き留めて、問題を修正し、テストを書きます。 – tdelaney