簡體   English   中英

在python中遍歷列表

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM