Python代码编译问题

时间:2013-10-09 07:33:34

标签: python

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'

1 个答案:

答案 0 :(得分:5)

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

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

listofStds = [std1, std2, std3, std4, std5]