그래서 이것을 알아내는 데 어려움이 있습니다. 코스라는 두 클래스와 대본이라는 클래스를 만들었습니다.다른 클래스의 속성이 목록에 추가되지 않고 인쇄되지 않습니다.
나는 "add_course"라고 불리는 Transcript 클래스의 메서드를 가지고 있으며, "self.courses"로 설정된 "courses"라는 코스 목록에 추가 된 것으로 가정합니다.
문제는 일부 테스트 과정을 추가 한 후 Transcript 클래스를 인쇄 할 때 아무 것도 추가하지 않고 "Transcript :"만 인쇄한다는 것입니다.
class Course:
def __init__(self, number, credit, grade):
#validgrades = ['A','B','C','D','F','IP']
#if grade not in validgrades:
#raise CourseError("bad grade" + "'" + grade + "'")
self.number = number #string
self.credit = credit #int
self.grade = grade #string
def __str__(self):
return ('%s: credit %d, grade %s' % (self.number, self.credit, self.grade))
def __eq__(self,other):
return self.number==other.number and self.credit==other.credit and self.grade==other.grade
def is_passing(self):
if self.grade == 'F' or self.grade == 'IP':
return False
else:
return True
c1 = Course("CS112",4,"A")
print(c1)
print(c1.is_passing())
c2 = Course("ENGH101", 3, "B")
print(c1==c2)
c3 = Course("MATH113", 4, "IP")
class Transcript:
def __init__(self):
courses = []
self.courses = courses
def __str__(self):
strtrans=""
strtrans +='Transcript:\n'
for i in self.courses:
strtrans+= '%s\n\t' %(i)
return strtrans
def __eq__(self,other):
if self.courses == other.courses:
return True
else:
return False
def add_course(self,course):
for i in self.courses:
self.courses.append(course)
def course_by_number(self, number):
for i.number in self.courses:
if self.number == number:
print('It worked!')
return True
elif self.number == None:
return None
else:
return False
t=Transcript()
print(t)
t.add_course(c1)
t.add_course(c2)
t.add_course(c3)
print(t)
출력은 다음과 같습니다
CS112 : 신용 4, A 급
진정한
거짓
성적 증명서 :
성적 증명서 :
,451,515,이되어야 할 때 :
성적 증명서 :
CS112 : 신용 4, A 급
ENGH101 : 신용 3 등급 B
MATH113 : 신용 4 등급 IP
glace에서 문제가 발생한 것 같습니다. 'self.course = self.courses.append (course)''self.course ='append를 필요로하지 않고, 목록을 수정하고, 추가하지 않고 – Nullman
을 반환합니다. 그 부분을 제거했지만 여전히 아무 것도 인쇄하지 않습니다. – ruckarucka