代理服務(wù)器地址seo搜索引擎優(yōu)化服務(wù)
繼承允許我們定義一個(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 = fnameself.lastname = lnamedef 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)
通過(guò)使用 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)?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 = yearx = Student("Mike", "Olsen", 2019)
添加方法
示例,向 Student 類添加一個(gè)名為 welcome 的方法:
class Student(Person):def __init__(self, fname, lname, year):super().__init__(fname, lname)self.graduationyear = yeardef 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),即可獲取最新文章。
看完如果覺得有幫助,歡迎點(diǎn)贊、收藏和關(guān)注