python函数的继承_Python 继承
版權(quán)所有,未經(jīng)許可,禁止轉(zhuǎn)載
Python 繼承
繼承允許我們?cè)诙x一個(gè)類時(shí),讓該類繼承另一個(gè)類的所有方法和屬性。
父類是被繼承的類,也稱為基類。
子類是繼承父類的類,也稱為派生類。
創(chuàng)建父類
任何類都可以是父類,創(chuàng)建父類的語(yǔ)法和創(chuàng)建普通類是一樣的:
示例
創(chuàng)建一個(gè)名為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)建對(duì)象,然后執(zhí)行printname方法:
x = Person("Kevin", "Wu")
x.printname()
創(chuàng)建子類
要?jiǎng)?chuàng)建子類,需將父類作為參數(shù)傳入:
示例
創(chuàng)建一個(gè)名為Student的類,它將繼承Person類的屬性和方法:
class Student(Person):
pass
注意: 當(dāng)您不想給類添加任何屬性或方法時(shí),使用pass關(guān)鍵字。
現(xiàn)在Student類具有與Person類相同的屬性和方法。
示例
使用Student類創(chuàng)建對(duì)象,然后執(zhí)行printname方法:
x = Student("Kevin", "Tony")
x.printname()
添加__init__()函數(shù)
到目前為止,我們已經(jīng)創(chuàng)建了一個(gè)子類,它繼承了父類的屬性和方法。
現(xiàn)在將__init__()函數(shù)添加到子類(不再使用pass關(guān)鍵字)。
注意: 每當(dāng)創(chuàng)建新對(duì)象時(shí),都會(huì)自動(dòng)調(diào)用類的__init__()函數(shù)。
示例
將__init__()函數(shù)添加到Student類:
class Student(Person):
def __init__(self, fname, lname):
# 添加屬性
當(dāng)您添加了__init__()函數(shù)后,子類將不再繼承父類的__init__()函數(shù)。
注意: 子函數(shù)的__init__()重寫父函數(shù)的__init__()。
要保留父類的__init__()函數(shù)的功能,可在子類的__init__()函數(shù)中調(diào)用父類的__init__()函數(shù):
示例
class Student(Person):
def __init__(self, fname, lname):
Person.__init__(self, fname, lname)
現(xiàn)在,我們已經(jīng)給子類添加了__init__()函數(shù),并調(diào)用了父類的__init__()函數(shù),下面我們將在__init__()函數(shù)中添加其他功能。
添加屬性
示例
在Student類中添加一個(gè)關(guān)于畢業(yè)年份的屬性:
class Student(Person):
def __init__(self, fname, lname):
Person.__init__(self, fname, lname)
self.graduationyear = 2019
2019年應(yīng)該是一個(gè)變量,并在創(chuàng)建學(xué)生對(duì)象時(shí)傳遞給Student類。為此,在__init__()函數(shù)中添加另一個(gè)year參數(shù):
示例
添加一個(gè)year參數(shù),創(chuàng)建對(duì)象時(shí)傳入畢業(yè)年份:
class Student(Person):
def __init__(self, fname, lname, year):
Person.__init__(self, fname, lname)
self.graduationyear = year
x = Student("Kevin", "Tony", 2019)
加入方法
示例
在Student類中添加一個(gè)名為welcome的方法:
class Student(Person):
def __init__(self, fname, lname, year):
Person.__init__(self, fname, lname)
self.graduationyear = year
def welcome(self):
print("Welcome", self.firstname, self.lastname, "to the class of", self.graduationyear)
如果在子類中添加父類中的同名方法,則父類的方法將被重寫。
總結(jié)
以上是生活随笔為你收集整理的python函数的继承_Python 继承的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 由Dvbbs PHP 0day引发的争论
- 下一篇: 让UpdatePanel支持文件上传(4