需要在构造函数Student Self内部打印列表。grades=[]空列表当试图访问时,会打印出地址的对象
class Student:
def __init__(self, name, year):
self.name = name
self.year = year
self.grades = [] # how to print this
def add_grade(self, grade):
if type(grade) is Grade:
k = self.grades
k.append(grade)
class Grade:
minimum_passing = 65
def __init__(self, score):
self.score = score
pieter = Student("pw", 10)
pieter.add_grade(Grade(100))
PS谢谢
添加grade.score
:
k.append(grade.score)
打印列表:
print(pieter.grades) # [100]
另请参见Python类示例。
如果将项目追加到列表中,则需要for
-循环来显示列表上所有元素的属性
for item in pieter.grades:
print(item.score)
它将在新的行中打印每个分数
pieter.add_grade(Grade(100))
pieter.add_grade(Grade(16))
pieter.add_grade(Grade(56))
for item in pieter.grades:
print(item.score)
100
16
56
如果你使用列表理解,那么你可以将其转换为列表
scores = [ item.score for item in pieter.grades ]
print(scores)
并将其显示为列表
pieter.add_grade(Grade(100))
pieter.add_grade(Grade(16))
pieter.add_grade(Grade(56))
print([ item.score for item in pieter.grades ])
[100, 16, 56]
您可以将其添加为学生中的方法
def get_scores(self):
return [ item.score for item in self.grades ]
并用作
for item in pieter.get_scores():
print(item) # without .score
print(pieter.get_scores())
全代码
class Student:
def __init__(self, name, year):
self.name = name
self.year = year
self.grades = [] # how to print this
def add_grade(self, grade):
if type(grade) is Grade:
k = self.grades
k.append(grade)
def get_scores(self):
return [ item.score for item in self.grades ]
class Grade:
minimum_passing = 65
def __init__(self, score):
self.score = score
pieter = Student("pw", 10)
pieter.add_grade(Grade(100))
pieter.add_grade(Grade(16))
pieter.add_grade(Grade(56))
for item in pieter.grades:
print(item.score)
print([ item.score for item in pieter.grades ])
for item in pieter.get_scores():
print(item)
print(pieter.get_scores())