對(duì)象的構(gòu)成:
屬性 —— 用自然語言描述,通常是名詞(Nouns)
方法 —— 用自然語言描述,通常是動(dòng)詞(Verbs)
舉個(gè)例子:創(chuàng)建一個(gè)對(duì)象Teacher(老師)
Teacher的屬性有name(姓名)、age(年齡)等,Teacher 的方法有teacher(上課)、study(學(xué)習(xí))
EnglishTeacher(英語老師)也屬于Teacher,所以EnglishTeacher可以繼承Teacher并且使用Teacher的屬性和方法
MathTeacher(數(shù)學(xué)老師)的teach方法不同于EnglishTeacher,所以可以對(duì)方法進(jìn)行重寫。
類的私有屬性
private_attrs:兩個(gè)下劃線開頭,聲明該屬性為私有,不能在類的外部被使用或直接訪問。在類內(nèi)部的方法中使用時(shí) self.private_attrs。
類的方法
在類的內(nèi)部,使用 def關(guān)鍵字來定義一個(gè)方法,與一般函數(shù)定義不同,類方法必須包含參數(shù) self,且為第一個(gè)參數(shù),self 代表的是類的實(shí)例。
self 的名字并不是規(guī)定死的,也可以使用 this,但是最好還是按照約定用 self。
類的私有方法
private_method:兩個(gè)下劃線開頭,聲明該方法為私有方法,只能在類的內(nèi)部調(diào)用 ,不能在類的外部調(diào)用。在類內(nèi)部調(diào)用self.private_methods。
Python 類定義
Class 使用 class 關(guān)鍵字進(jìn)行定義。class name使用駝峰標(biāo)識(shí),例如MyClass:
# 定義類
class Teacher:
def __init__(self, name, age):
self.name = name
self.age = age
def teach(self):
print("{0} teach".format(self.name))
def study(self):
print("{0} study".format(self.name))
# 創(chuàng)建類的實(shí)例
my_teacher = Teacher("zhangsan", 18)
my_teacher.teach()
# 輸出
zhangsan teach
注:
self 用來指代將來用這個(gè) Class 創(chuàng)建的 Instance實(shí)例。
init() 函數(shù)是系統(tǒng)創(chuàng)建實(shí)例后被初始化的函數(shù)。這個(gè)函數(shù)名稱是強(qiáng)制指定的,初始化函數(shù)必須使用這個(gè)名稱;注意 init 兩端各有兩個(gè)下劃線 _。
self.name,self.age 各接收了一個(gè)參數(shù),表示用戶屬性
Python 類繼承
繼承,顧名思義,新的事物擁有舊事物的特征,并且可以傳遞下去。
在Python中,繼承的范圍更廣,比如定義一個(gè)實(shí)例Teacher,則新的實(shí)例EnglishTeacher是老師,所以可以繼承Teacher。老師有姓名、年齡、性別等屬性,有上課、學(xué)習(xí)等方法,則英語老師繼承老師的所有屬性和方法。
再比如,定義一個(gè)實(shí)例Mother母親,定義一個(gè)實(shí)例Father父親,則新的實(shí)例Kids孩子不但可以繼承Mother還可以繼承Father。
以上兩個(gè)例子分別是單繼承和多繼承。
Python可以實(shí)現(xiàn)單繼承和多繼承
單繼承
# # EnglishTeacher繼承Teacher類
class EnglishTeacher(Teacher):
def __init__(self, name, age, score):
self.name = name
self.age = age
self.score = score
def teach(self):
print("{0} teach".format(self.name))
# 創(chuàng)建類的實(shí)例
teacher = EnglishTeacher("xiaomeng", 10)
teacher.teach()
# 輸出
xiaomeng teach
多繼承
# 定義父親類
class Father:
def __init__(self, name, age):
self.name = name
self.age = age
def speak(self):
print("{0} is father".format(self.name))
# 定義母親類
class Mother:
def __init__(self, name, age):
self.name = name
self.age = age
def speak(self):
print("{0} is mother".format(self.name))
# Kid繼承Father和Mother類
class Kid(Father, Mother):
def speak(self):
print("{0} is kid".format(self.name))
# 創(chuàng)建類的實(shí)例
kid = Kid("student", 6)
kid.speak()
# 輸出
baby is kid
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
本文名稱:Python入門進(jìn)階教程-面向?qū)ο?創(chuàng)新互聯(lián)
網(wǎng)址分享:http://jinyejixie.com/article48/dhogep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計(jì)公司、搜索引擎優(yōu)化、網(wǎng)站營銷、網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容