class student:
def __init__(self, name, age, mark):
self.name = name
self.age = age
self.mark = mark
std1 = student("name1", 14, 45)
std2 = student("name2", 13, 90)
std3 = student("name3", 14, 70)
std4 = student("name4", 14, 80)
std5 = student("name5", 13, 75)
listofStds = ["std1", "std2", "std3", "std4", "std5"]
for x in sorted(listofStds,key=lambda x: x.mark):
print x
请帮忙。我是一个python初学者,我正在尝试使用类的这个简单的排序程序,但我不断收到以下错误
AttributeError:'str'对象没有属性'mark'
答案 0 :(得分:5)
listofStds
是字符串列表,而不是student
个实例的列表。您正尝试按字符串不存在的属性mark
对其进行排序。
你可能想要一个students
的列表,所以你需要这个:
listofStds = [std1, std2, std3, std4, std5]