[英]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.