主要從以下三個方面講述類:
(1)什麼叫物件導向,為什麼要物件導向?
(2)python類的三大特性:封裝、繼承、多型。
(3)類的基本概念。
(4)類的例子和關鍵點解釋。
1. 什麼叫物件導向,為什麼要物件導向?
將大家共有的特性剝離出來進行抽象的過程就是物件導向,這是「物件導向」最直觀的理解。物件導向
個人理解,類就相當於乙個函式,只不過「這些函式」具有可繼承等好處。為了和函式有所區別,不易混淆,那就要做得複雜點,讓大家重視起來!!。。。針對,類裡面有很多物件的時候,這個就凸顯出類定義的好處。
2. python的三大特性:封裝、繼承、多型。
封裝:抽象出物件的屬性或功能,形成(即封裝成)乙個有機的整體(即類)。將內部實現包裹起來,對外透明,提供api介面進行呼叫的機制。封裝的目的是增強安全性和簡化程式設計,使用者不必了解具體的實現細節,而只是要通過外部介面,一特定的訪問許可權來使用類的成員。
繼承:就是子類可以繼承父類的變數和方法。例如animal是父類,有手、腳的屬性;cat是子類,也有手、腳的屬性,不需要額外定義,只需要繼承就可以了。
多型:根據物件型別的不同以不同的方式進行處理。
多型:就是子類的屬性或功能可以覆蓋掉父類的屬性或功能。例如animal是父類,有手、腳的屬性;cat是子類,也有手、腳的屬性。當cat繼承父類animal的屬性,cat也可以自己定義手、腳的屬性,從而形成多種多樣的屬性。
3. 類的基本概念。
一些專業術語概念,既然有物件導向程式設計這個高大上的定義了,自然要搭配一些高大上的概念。
類(class): 用來描述具有相同屬性和方法的物件的集合。它定義了該集合中每個物件所共有的屬性和方法。其中的物件被稱作類的例項。
例項:也稱物件。通過類定義的初始化方法,賦予具體的值,成為乙個」有血有肉的實體」。
例項化:建立類的例項的過程或操作。
例項變數:定義在例項中的變數,只作用於當前例項。
類變數:類變數是所有例項公有的變數。類變數定義在類中,但在方法體之外。
資料成員:類變數、例項變數、方法、類方法、靜態方法和屬性等的統稱。
方法:類中定義的函式。
靜態方法:不需要例項化就可以由類執行的方法
類方法:類方法是將類本身作為物件進行操作的方法。
方法重寫:如果從父類繼承的方法不能滿足子類的需求,可以對父類的方法進行改寫,這個過程也稱override。
4. 類的例子和關鍵點解釋。
class studetn:
# 定義乙個類名為studetn
def __init__(self,idx):
# 定義初始化構造,這裡使用init,還有別的屬性比如reversed,iter之類的
self.idx=idx
# 初始化變數,方便繼承
def runx(self):
# 定義執行函式,從上面繼承變數
print self.idx
# 列印出idx的值,或者做一些別的處理
time.sleep(1)
a=studetn('a')
a.runx()
# 這是類的呼叫,一定要記得類的使用方法,首先傳入引數,類賦值給乙個變數a
# 然後呼叫這個類下面定義的函式
(1)"init" 方法為python中的構造方法,用於初始化我們的類,也就是初始化我們希望的共有屬性,同時構造方法中可以執行該類中其他的函式。
(2)self是乙個形式引數,為該類的例項化物件,例如 a = my_class() 中,可以理解a就是self引數。
(3)建立物件時,類的後面需要加括號,即完成類的例項化,同時python會自動查詢該類中的構造方法。
(4)類中如果定義了多個功能函式,那麼這些函式可以稱之為該類例項化物件所擁有的方法。
參考:多型的理解還可以參考:
Python之物件導向元類
python之物件導向元類 call方法 1 class people 2def init self,name 3 self.name name4 5def call self,args,kwargs 6print call 7 89 p people george 10print callable...
python之物件導向
類 是乙個特殊的物件,class a 定義的類屬於 類物件 類的例項 obj a 屬於 例項物件 例項屬性 init 定義例項屬性 例項方法 self 物件名.方法名 類屬性 針對類物件定義的屬性,訪問類屬性方法 類名.類屬性 物件名.類屬性 類方法 針對類物件定義的方法,內部可直接訪問類屬性和其他...
python之物件導向
python中一切皆物件 class 定義的類屬於類物件 obj1 屬於例項物件 在程式執行時,類同樣會載入到記憶體,類物件在記憶體中只有乙份,使用乙個類可以建立出很多例項物件 除了封裝例項的屬性和方法外,類物件還可以擁有自己的屬性和方法 類屬性和例項屬性 類屬性就是給類物件中定義屬性,通常用來記錄...