我是新來的蟒蛇,我正在閱讀python文檔,並在給定的例子http://docs.python.org/2/howto/sorting.html#key-functions我卡住,我沒有得到它如何正確工作。Python類不能使用排序功能
我使用eclipse Pydev的運行此代碼..
class Student:
student_object = [
('john', 'a', 15),
('as', 'C', 12),
('dave', 'B', 10)
]
def __init__(self, name, grade, age):
self.name = name
self.grade = grade
self.age = age
def __repr__(self):
return repr((self.name, self.grade, self.age))
print sorted(Student.student_object, key=lambda Student: Student.age)
錯誤
Traceback (most recent call last):
File "C:\Users\user1\workspace\demPython\src\ru.py", line 26, in <module>
print sorted(Student.student_object, key=lambda Student: Student.age)
File "C:\Users\user1\workspace\demPython\src\ru.py", line 26, in <lambda>
print sorted(Student.student_object, key=lambda Student: Student.age)
AttributeError: 'tuple' object has no attribute 'age'
如何類和方法在Python的工作?爲什麼這段代碼不工作?
編輯
但我changein最後一行,並與給定的行
print sorted(Student.student_object, key=lambda student: student[0])
它是工作,給我輸出[('as', 'C', 12), ('dave', 'B', 10), ('john', 'a', 15)]
你混淆了文檔中的例子;重新仔細閱讀它們。 'student_tuples'與基於類的示例完全分開。 – jonrsharpe