【发布时间】:2017-09-29 11:05:54
【问题描述】:
所以我很难弄清楚这一点,我做了两门课,一门叫做 Course,一门叫做 Transcript。
我在 Transcript 类中有一个名为“add_course”的方法,它应该将提供给它的课程附加到一个名为“courses”的课程列表中,该列表设置为“self.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 级
是的
错误
成绩单:
成绩单:
什么时候应该:
成绩单:
CS112:学分 4,A 级
ENGH101:学分 3,B 级
MATH113:学分 4,IP 等级
【问题讨论】:
-
一目了然,你的问题可能在这里
self.course = self.courses.append(course)你不需要self.course =追加,修改列表,它不添加和返回 -
我删除了那个部分,它仍然没有打印任何东西
标签: python class object attributes append