python中類的特點 Python中的類(一)

2021-10-21 04:25:27 字數 2521 閱讀 4345

python中的類(一)

一、 應用場景

如果多個函式中有一些相同的引數時,轉換成物件導向。

二、 如何建立類

類是用來描述具有相同的屬性和方法的物件的集合。它定義了該集合中每個物件所共有的屬性和方法。物件是類的例項。

class 類名:

pass

三、 類變數

類變數在整個例項化的物件中是公用的。類變數定義在類中且在函式體之外。類變數通常不作為例項變數使用。

四、 建立類中的方法

方法是類中定義的函式。

1、普通法

obj = 類名 ()

obj . 普通方法名

2、設定初始化(構造方法、封裝特性)

由於類可以起到模板的作用,因此,可以在建立例項的時候,把一些我們認為必須繫結的屬性強制填寫進去。通過定義乙個特殊的__init__方法,在建立例項的時候,就把name,score等屬性綁上去:

class student(object):

def __init__(self, name, score):

self.name = name

self.score = score

注意:特殊方法「init」前後有兩個下劃線!!!

注意到__init__方法的第乙個引數永遠是self,表示建立的例項本身,因此,在__init__方法內部,就可以把各種屬性繫結到self,因為self就指向建立的例項本身。

有了__init__方法,在建立例項的時候,就不能傳入空的引數了,必須傳入與__init__方法匹配的引數,但self不需要傳,python直譯器自己會把例項變數傳進去:

>>> bart = student('bart simpson', 59)

>>> bart.name

'bart simpson'

>>> bart.score

和普通的函式相比,在類中定義的函式只有一點不同,就是第乙個引數永遠是例項變數self,並且,呼叫時,不用傳遞該引數。除此之外,類的方法和普通函式沒有什麼區別,所以,你仍然可以用預設引數、可變引數、關鍵字引數和命名關鍵字引數。

五、繼承特性

繼承是為了使用父類中的方法。

建立例項:

class father():             #父類

def f1(self):

print (『父法一』)

class son(father):             #子類

def s1(self):

print(『子法一』)

呼叫:obj=son()

obj.s1()

obj.f1()

#執行結果:子法一

父法一當子類中的方法名和父類的方法名一致時(重寫父類的某方法),呼叫該方法時,執行的是子類中的方法。重寫時,還想要執行父類的方法時可以參照以下方法。

class father():             #父類

def f1(self):

print (『父法一』)

class son(father):             #子類

def s1(self):

super(son,self).f1           #引數:子類名,self

print(『子法一』)

#呼叫obj=son()

obj.s1()

#執行結果:父法一

子法一也可以按照以下方法寫:

class father():             #父類

def f1(self):

print (『父法一』)

class son(father):             #子類

def s1(self):

father.f1(self)

print(『子法一』)

#呼叫obj=son()

obj.s1()

多繼承:

當需要乙個子類繼承多個父類時,可以參照以下**:

class father1():           #父類一

def f1(self):

print (『父類一』)

class father2():           #父類二

def f2(self):

print (『父類二』)

class son(father1,father2):              #子類

def s1(self):

print(『子法一』)

繼承父類的順序是從左到右繼承。即,當繼承的多個父類中有相同名稱的方法,在呼叫時會執行左側父類的方法,而右側父類的方法則不會執行。這與執行順序有關。當呼叫子類時,程式會先從子類的方法中匹配,如果子類中沒有則去符類中依次匹配,父類的匹配順序是從左到右。

當多父類繼承共同繼承乙個祖先類,而呼叫的方法在祖先類時,的查詢呼叫順序如下圖。

當呼叫父類的方法中又呼叫了其他方法,則會從子類開始匹配查詢該方法。即使,原先的父類中有該方法,也會從子類查詢。

python中類的特點 PYTHON 類的三大特性

三大特性 封裝 繼承 多型 成員 字段 靜態字段 每個物件都有乙份 普通字段 每個物件都不同的資料 方法 靜態方法 無需使用物件封裝的內容 staticmethod 類方法 會自動加當前類的類名 def cls classmethod 普通方法 使用物件中的資料 特性 普通特性 將方法偽造成欄位 方...

python中建立類role 初識Python類

吐槽 學習物件導向就像你追乙個女神一樣,剛剛有點感覺了,過幾天又陷入絕望的感覺,很蛋疼。類的語法 classperson object print learning class test person test就是類person的例項化物件 例項化,就是以person類為模板,在記憶體裡開闢一塊空間...

python 類和物件的特點

分享下python 類的一些基礎知識點,學到這裡相信大家對python的了解已經有一定的程度了。今天說的python 類很合適那些做長期產品開發的朋友。python oop相比其他的比如c j a語言的話的理解和使用要更簡單,它把一些複雜的語法特性給除去了。大家開始接觸python 類的時候,可以把...