【代碼世界】Python筆記#5 - 面向?qū)ο蟮幕緫?yīng)用

概況
? ? 本文介紹Python面向?qū)ο蟮膬?nèi)容, 來(lái)自?禾木AI 老師的【Python面向?qū)ο缶幊淘斀狻康膶W(xué)習(xí)總結(jié)。
????通過(guò)一個(gè)基于員工的類來(lái)展開(kāi),涉及下列內(nèi)容
類與實(shí)例
類方法與實(shí)例方法
繼承

一、定義類
定義類,通過(guò)class來(lái)定義,后面跟的是這個(gè)類名 Employee。
二、定義方法
初始化方法
- 定義初始化方法,其中**self**指代的是 該類的當(dāng)前實(shí)例(instance)本身, 其余的參數(shù)為相關(guān)屬性參數(shù)。
- 該方法也成為構(gòu)造方法,創(chuàng)建實(shí)例時(shí)自動(dòng)調(diào)用。在創(chuàng)建實(shí)例時(shí),要輸入除self以外參數(shù),然后會(huì)將參數(shù)值賦給實(shí)例
- 這些實(shí)例變量在外部改變時(shí),只影響實(shí)例本身,不影響其他實(shí)例。
實(shí)例方法
- 基于self的方法,為實(shí)例方法(實(shí)例就是new 出來(lái)的東西)
類變量
- 可供該類內(nèi)部的方法使用,使用時(shí)加上類名或self,類方法都可以進(jìn)行訪問(wèn)
- 類變量可在外部修改,但只影響修改的當(dāng)前實(shí)例。
- 該變量可以供每個(gè)實(shí)例共享
類方法
- 帶 `@` 表示這是一個(gè)裝飾器,@classmethod后面的方法表示類方法
- 類變量的指示符為cls, 表示當(dāng)前類
- 該類方法,也可以通過(guò)實(shí)例來(lái)進(jìn)行訪問(wèn)
- 類方法的主要作用是用來(lái)創(chuàng)建類實(shí)例的
靜態(tài)方法
- 靜態(tài)方法不用修飾,表示不依賴任何實(shí)例或者類
- 因此靜態(tài)方法用來(lái)做一些通用的工作
特殊方法重寫
- 將實(shí)例內(nèi)容輸出為字符串而不是內(nèi)存地址,用于開(kāi)發(fā)調(diào)試階段
繼承
- 繼承自Employee
- 繼承的父子類為是的關(guān)系(is), 繼承的子類之間是像的關(guān)系(like)
多繼承的實(shí)現(xiàn)
?一點(diǎn)理解
?類 在我的理解就是,概況化的一個(gè)屬性和功能集合,像是提取具有相似性質(zhì)的事物的共同點(diǎn)來(lái)封裝組合成一個(gè)集合。
??? ?實(shí)例就是這個(gè)概況化概念下的一個(gè)具體事物,例如學(xué)生是一個(gè)類,張三就是學(xué)生類中的一個(gè)具體人;又如鳥是一個(gè)類,鴨子就是鳥類中的一個(gè)具體物種。
????對(duì)應(yīng)的,類會(huì)有大有小,例如鳥是一個(gè)類,鴨子可以是鳥類中的子類,野鴨又是鴨子類中的又一個(gè)子類,阿黃是野鴨的一個(gè)實(shí)例(一只具體的鴨子)。由于這三個(gè)類 都有一些共通點(diǎn),所以為了避免重復(fù)寫一些相似的屬性代碼,就可以讓鴨子類繼承鳥類的一些屬性,野鴨類繼承鴨子類的屬性,并進(jìn)而添加屬于野鴨類的獨(dú)特的特性。
????規(guī)定好一個(gè)類之后,直接對(duì)這個(gè)類起作用的方法為類方法或靜態(tài)方法(與具體實(shí)例無(wú)關(guān));而對(duì)于具體事物起作用的一些方法,就是實(shí)例方法。

? ?以上是關(guān)于Python面向?qū)ο笾械囊恍┙榻B和自己在使用中的一些心得記錄,供自己查閱也分享給一同學(xué)習(xí)的朋友,如有不恰當(dāng)或錯(cuò)誤之處,歡迎留言交流,謝謝~?