[英]How to print attribute of constructor?
需要在構造函數中打印列表 Student Self.grades=[ ] 嘗試訪問空列表時打印出地址的 object
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謝謝
如果您要列出 append 項目,那么您for
-loop 來顯示列表中所有元素的屬性
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())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.