1
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”

4

1 回答 1

5

listofStds是字符串列表,而不是student实例列表。您正在尝试按mark字符串不存在的属性对其进行排序。

你可能想要一个 的列表students,所以你需要这个:

listofStds = [std1, std2, std3, std4, std5]
于 2013-10-09T07:36:10.630 回答