Ⅰ python中的面向對象(高級)之私有方法、多繼承、多態
特徵:私有屬性與私有方法不能從外部被調用,也不能被子類繼承
唯一寫法:在屬性或方法前面加上__(兩個下劃線)
我們寫一個簡單的例子,創建一個類,包含私有方法、私有屬性、普通方法、普通屬性,並生成一個實例
私有屬性和私有方法可以從內部被調用(總不能我寫了,但是哪都不讓用吧)
我們試試在類里再加入一個新的方法,調用私有方法和屬性
可以看到,私有屬性和私有方法是可以在類內部被調用的。
舉個私有屬性應用場景的例子
二。object類
我們試一下
三。多繼承
一個子類可以繼承多個父類,用逗號隔開
多個父類中有同名方法時,按照繼承順序進行調用
四。多態
當不同的實例,有同名的方法時,我們可以一個函數,傳入不同的實例,執行對應的方法。
我們定義一個貓和一個狗的類,兩個類中都有'叫'的方法。並各生成一個實例。
定義一個函數,用函數來調用'叫'的方法
這就叫多態。
Ⅱ Python中的面向對象(進階)
一、實例方法,類方法,靜態方法
我們首先寫一個類,裡麵包含這三種方法。
可以看到,我們用到了兩個裝飾器。
我們用類和實例分別調用下類方法
我們用類和實例分別調用下靜態方法
靜態方法其實就是把一個普通的函數寫在類里,與直接在外層寫一個函數是一樣的,本質上是一個函數。
為了方便理解,我們分別列印下這些方法的類型
通過type()查看對象是方法還是函數
此外,還可以通過inspect模塊判斷某個對象是否是某種類型,返回布爾值。
用法
小Tips:概念理解
直接def定義的,我們叫做函數
把函數放到類里,我們叫做方法
方法可以通過裝飾器staticmethod轉為(放在方法里的)函數
繼承
一個類繼承另一個類時,會自動獲得另一個類的所有屬性和方法,被繼承的類稱之為父類,新類稱為子類。子類擁有父類所有的屬性和方法,並且可以定義自己的屬性和方法
我們以上邊的Rectangle類為父類來試一下
1)完全繼承
可以看到,子類完全繼承父類後,可以直接調用父類的所有方法。
2)部分繼承
部分繼承:繼承父類後,修改父類的同名方法
我們試一下,Square繼承Rectangle後,修改__init__()方法
3)拓展父類的方法
在保留父類中某個方法的代碼同時,對方法進行拓展
可以在方法中加入"super().方法名"來實現
4)@property
Ⅲ python面向對象的三個基本特徵
封裝,繼承,多態,。。
Ⅳ python之面向對象
面向對象(OOP)是一種對現實世界理解和抽象的方法,對象的含義是指在現實生活中的具體事物, 一切皆對象 ,Python 是一門面向對象的語言,面向對象編程簡單來說就是一種 封裝代碼 的方式。
Python 中類的定義使用 class 關鍵字定義類,語法如下所示:
舉例,定義一個類 Cat
構造方法 init() 會在類實例化時自動調用。無論構造方法還是其他方法都需要將 self 作為第一個參數,它代表類的實例。
類創建好後,可以直接通過類名訪問屬性,格式為: 類名.屬性名 ,比如我們訪問 Cat 類的 color 屬性,如下所示:
創建對象也稱類的實例化,比如我們通過 Cat 類創建對象,如下所示:
創建好對象後,使用它訪問屬性和調用方法了,如下所示:
內部私有屬性和方法是可以被訪問和調用的。
我們來一起看個例子,如下所示:
輸出結果:
Python 支持類的繼承,而且支持多繼承,語法格式為:
示例如下所示:
如果繼承的父類方法不能滿足我們的需求,這時子類可以 重寫 父類方法,如下所示: