파이썬 클래스에 대한 문제 세트를 만들고 있습니다. 우리는 수업에 소개되고 있습니다. 나는 (A) 단일 매개 변수 인 string을 사용하여 Sentence라는 클래스를 만들고이 문장을 문자열로 저장하는 인스턴스 변수를 만들려고한다. (B) 그런 다음 getSentence (문장을 문자열로 반환), getWords (문장에서 단어 목록 반환), getLength (문장에서 문자 수 반환) 및 getNumWords (return 문장의 단어 수). 아래는 내가 시도한 것입니다 :파이썬 클래스, 인스턴스 변수 및 접근 자 메서드
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