[英]Going through list from class in python
对于学校项目,我必须编写一个Python程序来记录学生记录并显示它们。
我的学校说她想开一个代表学生注册的班级,但我不知道我该怎么做。
我创建了以下内容:
class SchoolRegister:
def __init__(self):
ListOfPupils = {}
def REgisterPupil(self, lastname, firstname, schoolID):
ListOfPupils[schoolID] = (lastname, firstname)
sr = SchoolRegister()
sr.REgisterPupil("Thomas", "Lucy", 1)
sr.REgisterPupil("Percival", "Jenny", 2)
我想查看清单,以便列出清单:1,托马斯,露西2,珀西瓦尔,詹妮
我进行了搜索,发现了一种使班级充当学生名单的方法,所以我可以在sr中做一个bod,但我不明白:(
这个问题提供了一个平台,在这个平台上我们可以讨论一些有趣的面向对象的编程概念! 理想情况下,我们希望通过创建代表真实世界的数据模型来用代码映射真实世界。 这是面向对象编程为我们提供的继承价值。
让我们使用您的示例。
我们的重点是能够创建已存在的学生的记录(也许我们应该对学生进行建模,并创建定义学生对我们的意义的参数)并注册(我们希望能够从中添加和删除学生,以及能够在我们可以访问的中央位置检索学生身体的状态)。
因此,我们可以继续实施一个简单的Student
类,该类代表我们所关注的学生(很难在几个因素上真正量化人类,因此让我们缩小关注范围:D):
class Student:
def __init__(self, id, first_name, last_name):
self.id = id
self.first_name = first_name
self.last_name = last_name
现在,我们可以创建代表学生的对象,并以结构化方式存储该信息。 现在转到学校注册簿,让我们考虑一下我们需要什么样的数据。 我们如何才能充分了解所有现有的学生? 我们可能使用的可能的数据结构可能是list
! 这使我们可以选择(1)存储所有现有的学生(2)保持将学生插入列表(或也许在学校就读)的顺序。
但是,如果我们希望能够快速访问Student
对象,该怎么办? 也许我们想在注册表中了解更多有关学生的信息,我们可以访问他们的id
。 那么在那种情况下,我们可以使用一个dict
,该dict
可以使用某种独特的标识符(即id
)为我们提供方便的学生查找。
让我们继续执行一个简单的示例:
class SchoolRegister:
def __init__(self):
self.students = {}
def register_student(self, student):
self.students[student.id] = student
def get_student_by_id(self, id):
return self.students[id]
现在,我们可以(1)创建一个Student
, (2)将其添加到我们的记录中, (3)使用键( 其id )查找该学生信息,如下所示:
school_register = SchoolRegister()
john_doe = Student(0, 'John', 'Doe')
school_register.register_student(john_doe)
school_register.get_student_by_id(0) # John Doe!
建议阅读:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.