現在實習生真的是一抓一大把!很多企業都有大量招聘實習生,
實習生可能一開始不能給公司帶來什麼,
但是重點是培養起來之後還是蠻不錯的!但是能招實習生的企業也是蠻少吧。
今天就是給他們打底子,
希望都能戒驕戒躁!先來點代碼看看吧!
繼承
繼承是一種創建新類的方式, 在python中, 新建的類可以繼承一個或多個父類, 父類又可稱為基類或超類, 新建的類稱為派生類或子類
python中類的繼承分為:單繼承和多繼承.小編給大家推薦一個學習氛圍超好的地方, Python學業交流:103456743!四千多小夥伴了吧!所以看到了快點進來吧, 不然就滿了!裡面資料都是大家貢獻的, 幾百個G了!什麼PDF, 零基礎入門, 爬蟲, web 資料分析都是有視頻加源碼的。 而已裡面好多學生, 工作了的, 遇到bug了可以尋求幫助, 遇到解決不了的問題也可以和大家交流,
介面
多態
多態指的是一類事物有多種形態
動物有多種形態:人, 狗, 豬
多態性
封裝
【封裝】
隱藏物件的屬性和實現細節, 僅對外提供公共訪問方式。
【好處】
1. 將變化隔離;
2. 便於使用;
3. 提高複用性;
4. 提高安全性;
【封裝原則】
1. 將不需要對外提供的內容都隱藏起來;
2. 把屬性都隱藏, 提供公共方法對其訪問。
這種變形需要注意的問題是:
1.這種機制也並沒有真正意義上限制我們從外部直接訪問屬性, 知道了類名和屬性名就可以拼出名字:_類名__屬性, 然後就可以訪問了, 如a._A__N
2.變形的過程只在類的內部生效,在定義後的賦值操作, 不會變形
3.在繼承中, 父類如果不想讓子類覆蓋自己的方法, 可以將方法定義為私有的
2、類的屬性
在類的內部定義的屬性,與類的方法平級。類的屬性是屬於類全域的,可以用 類名.屬性名 調用,也可以用 類的產生實體物件.屬性名 調用,如下:
4、產生實體類的物件
產生實體物件名 = 類名(參數1,參數2,參數3....)
5、類的其他方法
dir(類名):查出的是一個包含類的各個方法的列表
類名.__dict__:查出的是一個字典,key為屬性名,value為屬性值
類名.__name__:類的名字(字串)
類名.__base__: 類的第一個父類(在講繼承時會講)
類名.__bases__ : 類所有父類構成的元組
類名.__module__ : 類定義所在的模組
二、物件導向三大特性1、繼承
繼承的定義:
繼承是一種創建新類的方式,在python中,新建的類可以繼承一個或多個父類,父類又可稱為基類或超類,新建的類稱為派生類或子類
繼承的分類:
①單繼承:class B(A):pass
②多繼承:class C(B,A...)
繼承的作用:
① 減少代碼的重用
② 提高代碼可讀性
③ 規範程式設計模式
如何查看繼承至哪些類:
① 類名.__base__或者 類名.__bases__
② 如果沒有基類,那麼默認繼承object類
抽象類別:
① 抽象類別是一個介於類和介面之間的一個概念,同時具備類和介面的部分特性,可以用來實現歸一化設計
在python中,並沒有介面類別這種東西,即便不通過專門的模組定義介面,我們也應該有一些基本的概念。
② 抽象類別的本質還是類,指的是一組類的相似性,包括資料屬性(如all_type)和函數屬性(如read、write),而介面只強調函數屬性的相似性。
繼承類的查找順序:
① 經典類(沒有繼承object物件的類)
多繼承情況下,按照深度優先進行查找
② 新式類(繼承了object物件的類(python3中所有類都是新式類))
多繼承情況下,按照廣度優先來查找
繼承的原理:
python到底是如何實現繼承的,對於你定義的每一個類,python會計算出一個方法解析順序(MRO)清單,這個MRO列表就是一個簡單的所有基類的線性順序清單
3、封裝
封裝的定義
隱藏物件的屬性和實現細節,僅對外提供公共訪問方式。
封裝的好處
1. 將變化隔離;
2. 便於使用;
3. 提高複用性;
4. 提高安全性;
封裝的原則
1. 將不需要對外提供的內容都隱藏起來;
2. 把屬性都隱藏,提供公共方法對其訪問。
封裝的分類
①私有屬性
__屬性名 = 屬性值
只能在內部被調用,self.__屬性名
②私有方法
def __func(self,參數):pass
只能在內部被調用,self.__方法名(參數)
③私有實現的原理
其實只是python將私有屬性改了一下名字,可以通過 類名._類名__屬性名 來進行訪問,但是不要這樣做
靜態屬性
一個靜態屬性property本質就是實現了get,set,delete三種方法
issubclass(sub, super)檢查sub類是否是 super 類的派生類
注意:封裝絕不是等於“把不想讓別人看到、以後可能修改的東西用private隱藏起來”
真正的封裝是,經過深入的思考,做出良好的抽象,給出“完整且最小”的介面,並使得內部細節可以對外透明
(注意:對外透明的意思是,外部調用者可以順利的得到自己想要的任何功能,完全意識不到內部細節的存在)
合成
自省/反射
自省也稱作反射,這個性質展示了某物件是如何在運行期取得自身資訊的。如果傳一個物件給你,你可以查出它有什麼能力,這是一項強大的特性。如果Python不支持某種形式的自省功能,dir和type內建函數,將很難正常工作。還有那些特殊屬性,像__dict__,__name__及__doc__
六、物件導向思維導圖2、類的屬性
在類的內部定義的屬性,與類的方法平級。類的屬性是屬於類全域的,可以用 類名.屬性名 調用,也可以用 類的產生實體物件.屬性名 調用,如下:
4、產生實體類的物件
產生實體物件名 = 類名(參數1,參數2,參數3....)
5、類的其他方法
dir(類名):查出的是一個包含類的各個方法的列表
類名.__dict__:查出的是一個字典,key為屬性名,value為屬性值
類名.__name__:類的名字(字串)
類名.__base__: 類的第一個父類(在講繼承時會講)
類名.__bases__ : 類所有父類構成的元組
類名.__module__ : 類定義所在的模組
二、物件導向三大特性1、繼承
繼承的定義:
繼承是一種創建新類的方式,在python中,新建的類可以繼承一個或多個父類,父類又可稱為基類或超類,新建的類稱為派生類或子類
繼承的分類:
①單繼承:class B(A):pass
②多繼承:class C(B,A...)
繼承的作用:
① 減少代碼的重用
② 提高代碼可讀性
③ 規範程式設計模式
如何查看繼承至哪些類:
① 類名.__base__或者 類名.__bases__
② 如果沒有基類,那麼默認繼承object類
抽象類別:
① 抽象類別是一個介於類和介面之間的一個概念,同時具備類和介面的部分特性,可以用來實現歸一化設計
在python中,並沒有介面類別這種東西,即便不通過專門的模組定義介面,我們也應該有一些基本的概念。
② 抽象類別的本質還是類,指的是一組類的相似性,包括資料屬性(如all_type)和函數屬性(如read、write),而介面只強調函數屬性的相似性。
繼承類的查找順序:
① 經典類(沒有繼承object物件的類)
多繼承情況下,按照深度優先進行查找
② 新式類(繼承了object物件的類(python3中所有類都是新式類))
多繼承情況下,按照廣度優先來查找
繼承的原理:
python到底是如何實現繼承的,對於你定義的每一個類,python會計算出一個方法解析順序(MRO)清單,這個MRO列表就是一個簡單的所有基類的線性順序清單
3、封裝
封裝的定義
隱藏物件的屬性和實現細節,僅對外提供公共訪問方式。
封裝的好處
1. 將變化隔離;
2. 便於使用;
3. 提高複用性;
4. 提高安全性;
封裝的原則
1. 將不需要對外提供的內容都隱藏起來;
2. 把屬性都隱藏,提供公共方法對其訪問。
封裝的分類
①私有屬性
__屬性名 = 屬性值
只能在內部被調用,self.__屬性名
②私有方法
def __func(self,參數):pass
只能在內部被調用,self.__方法名(參數)
③私有實現的原理
其實只是python將私有屬性改了一下名字,可以通過 類名._類名__屬性名 來進行訪問,但是不要這樣做
靜態屬性
一個靜態屬性property本質就是實現了get,set,delete三種方法
issubclass(sub, super)檢查sub類是否是 super 類的派生類
注意:封裝絕不是等於“把不想讓別人看到、以後可能修改的東西用private隱藏起來”
真正的封裝是,經過深入的思考,做出良好的抽象,給出“完整且最小”的介面,並使得內部細節可以對外透明
(注意:對外透明的意思是,外部調用者可以順利的得到自己想要的任何功能,完全意識不到內部細節的存在)
合成
自省/反射
自省也稱作反射,這個性質展示了某物件是如何在運行期取得自身資訊的。如果傳一個物件給你,你可以查出它有什麼能力,這是一項強大的特性。如果Python不支持某種形式的自省功能,dir和type內建函數,將很難正常工作。還有那些特殊屬性,像__dict__,__name__及__doc__
六、物件導向思維導圖