Python繼承和子類從Person到Student演示實例
引言
繼承允許我們定義一個類,該類繼承另一個類的所有方法和屬性。父類是被繼承的類,也叫做基類。子類是從另一個類繼承的類,也叫做派生類。
創(chuàng)建一個父類
任何類都可以成為父類,因此語法與創(chuàng)建任何其他類相同:
示例,創(chuàng)建一個名為 Person 的類,具有 firstname 和 lastname 屬性以及一個 printname 方法:
class Person: def __init__(self, fname, lname): self.firstname = fname self.lastname = lname def printname(self): print(self.firstname, self.lastname)
使用 Person 類創(chuàng)建一個對象,然后執(zhí)行 printname 方法:
x = Person("John", "Doe") x.printname()
創(chuàng)建一個子類
要創(chuàng)建一個從另一個類繼承功能的類,創(chuàng)建子類時將父類作為參數(shù)傳遞:
示例,創(chuàng)建一個名為 Student 的類,它將繼承 Person 類的屬性和方法:
class Student(Person): pass
注意: 當(dāng)您不希望向類添加任何其他屬性或方法時,請使用 pass 關(guān)鍵字。
現(xiàn)在,Student 類具有與 Person 類相同的屬性和方法。
示例,使用 Student 類創(chuàng)建一個對象,然后執(zhí)行 printname 方法:
x = Student("Mike", "Olsen") x.printname()
添加 init() 函數(shù)
到目前為止,我們已經(jīng)創(chuàng)建了一個從父類繼承屬性和方法的子類。我們希望在子類中添加 init() 函數(shù)(而不是使用 pass 關(guān)鍵字)。
注意: 每次使用類創(chuàng)建新對象時,都會自動調(diào)用 init() 函數(shù)。
示例,向 Student 類添加 init() 函數(shù):
class Student(Person): def __init__(self, fname, lname): # 添加屬性等
當(dāng)您添加 init() 函數(shù)時,子類將不再繼承父類的 init() 函數(shù)。
注意: 子類的 init() 函數(shù)會覆蓋父類的 init() 函數(shù)的繼承。
要保留父類的 init() 函數(shù)的繼承,將調(diào)用父類的 init() 函數(shù):
示例:
class Student(Person): def __init__(self, fname, lname): Person.__init__(self, fname, lname)
現(xiàn)在,我們已成功添加了 init() 函數(shù),并保留了父類的繼承,并準(zhǔn)備在 init() 函數(shù)中添加功能。
使用 super() 函數(shù)
Python 還具有 super() 函數(shù),可以使子類繼承其父類的所有方法和屬性:
示例:
class Student(Person): def __init__(self, fname, lname): super().__init__(fname, lname)
通過使用 super() 函數(shù),您無需使用父元素的名稱,它將自動繼承其父元素的方法和屬性。
添加屬性
示例,向 Student 類添加一個名為 graduationyear 的屬性:
class Student(Person): def __init__(self, fname, lname): super().__init__(fname, lname) self.graduationyear = 2019
在下面的示例中,2019 年應(yīng)該是一個變量,并且在創(chuàng)建學(xué)生對象時傳遞給 Student 類。要實現(xiàn)這一點,請在 init() 函數(shù)中添加另一個參數(shù):
示例,添加一個 year 參數(shù),并在創(chuàng)建對象時傳遞正確的年份:
class Student(Person): def __init__(self, fname, lname, year): super().__init__(fname, lname) self.graduationyear = year x = Student("Mike", "Olsen", 2019)
添加方法
示例,向 Student 類添加一個名為 welcome 的方法:
class Student(Person): def __init__(self, fname, lname, year): super().__init__(fname, lname) self.graduationyear = year def welcome(self): print("Welcome", self.firstname, self.lastname, "to the class of", self.graduationyear)
最后
為了方便其他設(shè)備和平臺的小伙伴觀看往期文章:公眾號搜索Let us Coding
,或者掃描下方二維碼,關(guān)注公眾號,即可獲取最新文章。
以上就是Python 繼承和子類從 Person 到 Student演示實例的詳細內(nèi)容,更多關(guān)于Python繼承子類的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python作用域(局部?全局)及global關(guān)鍵字使用詳解
這篇文章主要為大家介紹了Python作用域(局部?全局)及global關(guān)鍵字使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-10-10Python實現(xiàn)統(tǒng)計給定列表中指定數(shù)字出現(xiàn)次數(shù)的方法
這篇文章主要介紹了Python實現(xiàn)統(tǒng)計給定列表中指定數(shù)字出現(xiàn)次數(shù)的方法,涉及Python針對列表的簡單遍歷、計算相關(guān)操作技巧,需要的朋友可以參考下2018-04-04python使用原始套接字發(fā)送二層包(鏈路層幀)的方法
今天小編就為大家分享一篇python使用原始套接字發(fā)送二層包(鏈路層幀)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07VS2022+Python3.11實現(xiàn)C++調(diào)用python接口
在C/C++中嵌入Python,可以使用Python提供的強大功能,通過嵌入Python可以替代動態(tài)鏈接庫形式的接口,本文主要介紹了VS2022+Python3.11實現(xiàn)C++調(diào)用python接口,感興趣的可以了解一下2023-12-12django中url映射規(guī)則和服務(wù)端響應(yīng)順序的實現(xiàn)
這篇文章主要介紹了django中url映射規(guī)則和服務(wù)端響應(yīng)順序的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04