如何打印构造函数的属性



需要在构造函数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())

最新更新