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