【发布时间】:2015-04-19 05:55:41
【问题描述】:
我想将 Student 类的排序实例存储到 Student 类中。我在学生类中使用静态方法进行排序。我可能是错的,但是设计似乎有点难看,并且想避免使用静态方法(我认为最理想的方法是在学生类中使用返回学生ID的类方法,并使用此方法进行排序,但似乎在Student类中设置类Student的类方法进行排序不是更简单的方法),如果有更好的设计,请分享,
class Student:
def __init__(self, id):
self.id = id
class Students:
def __init__(self, students):
self.sortedStudents = sorted(students, key=Students.getStudentID)
@staticmethod
def getStudentID(student):
return student.id
def dumpAllStudents(self):
for student in self.sortedStudents:
print student.id
students = []
students.append(Student(100))
students.append(Student(90))
students.append(Student(80))
allStudents = Students(students)
allStudents.dumpAllStudents()
提前致谢, 林
【问题讨论】:
-
我不懂你的代码设计——你为什么要为 Student 类中的 Student.id 字段创建一个 getter? getStudentID 方法是多余的
-
@mittelmania,好点,我可以,但是如何在学生类中引用此方法进行排序?谢谢。
标签: python class static-methods