一分鐘學Python 物件導向(中)

2021-10-10 06:34:53 字數 3268 閱讀 5216

超級無敵乾貨每日18:00推送給你!!!

一分鐘學python| 物件導向(上)這次接著上一次的內容繼續學習python的物件導向

類方法在類的內部,使用def關鍵字來定義乙個方法,與一般函式定義有幾點不同

類方法必須包含引數self, 且為第乙個引數,self 代表的是類的例項。

方法的呼叫需要例項化類,並以"例項名.方法名(引數列表)"的形式進行呼叫

必須整體進行乙個單位的縮排

以下為**例項

#類定義

class people:

#定義基本屬性

name = ''

age = 0

#定義私有屬性,私有屬性在類外部無法直接進行訪問

__weight = 0

#定義構造方法

def __init__(self,n,a,w):

self.name = n

self.age = a

self.__weight = w

def speak(self):

print("%s 說: 我 %d 歲。" %(self.name,self.age))

# 例項化類

p = people('ming',10,30)

p.speak()

執行以上程式輸出結果為:

ming 說: 我 10 歲。
繼承

python 同樣支援類的繼承,如果一種語言不支援繼承,類就沒有什麼意義。派生類的定義如下所示:

class derivedclassname(baseclassname1):..

.

baseclassname(示例中的基類名)必須與派生類定義在乙個作用域內。除了類,還可以用表示式,基類定義在另乙個模組中時這一點非常有用:

class derivedclassname(modname.baseclassname):
#類定義

class people:

#定義基本屬性

name = ''

age = 0

#定義私有屬性,私有屬性在類外部無法直接進行訪問

__weight = 0

#定義構造方法

def __init__(self,n,a,w):

self.name = n

self.age = a

self.__weight = w

def speak(self):

print("%s 說: 我 %d 歲。" %(self.name,self.age))

#單繼承示例

class student(people):

grade = ''

def __init__(self,n,a,w,g):

#呼叫父類的構函

people.__init__(self,n,a,w)

self.grade = g

#覆寫父類的方法

def speak(self):

print("%s 說: 我 %d 歲了,我在讀 %d 年級"%(self.name,self.age,self.grade))  

s = student('ken',10,60,3)

s.speak()

執行以上程式輸出結果為:

ken 說: 我 10 歲了,我在讀 3 年級
多繼承

python同樣有限的支援多繼承形式。多繼承的類定義形如下例:

class derivedclassname(base1, base2, base3):..

.

需要注意圓括號中父類的順序,若是父類中有相同的方法名,而在子類使用時未指定,python從左至右搜尋 即方法在子類中未找到時,從左到右查詢父類中是否包含方法。

#類定義

class people:

#定義基本屬性

name = ''

age = 0

#定義私有屬性,私有屬性在類外部無法直接進行訪問

__weight = 0

#定義構造方法

def __init__(self,n,a,w):

self.name = n

self.age = a

self.__weight = w

def speak(self):

print("%s 說: 我 %d 歲。" %(self.name,self.age))

#單繼承示例

class student(people):

grade = ''

def __init__(self,n,a,w,g):

#呼叫父類的構函

people.__init__(self,n,a,w)

self.grade = g

#覆寫父類的方法

def speak(self):

print("%s 說: 我 %d 歲了,我在讀 %d 年級"%(self.name,self.age,self.grade))

#另乙個類,多重繼承之前的準備

class speaker():

topic = ''

name = ''

def __init__(self,n,t):

self.name = n

self.topic = t

def speak(self):

print("我叫 %s,我是乙個演說家,我演講的主題是 %s"%(self.name,self.topic))

#多重繼承

class sample(speaker,student):

a =''

def __init__(self,n,a,w,g,t):

student.__init__(self,n,a,w,g)

speaker.__init__(self,n,t)

test = sample("tim",25,80,4,"python")

test.speak()   #方法名同,預設呼叫的是在括號中排前地父類的方法

執行以上程式輸出結果為:

我叫 tim,我是乙個演說家,我演講的主題是 python
我是kuls

無套路領取原創django、flask全套教程

⬇️

一分鐘sed入門(一分鐘系列)

1.簡介 sed是一種行編輯器,它一次處理一行內容。2.sed呼叫方式 sed options command file s sed options f scriptfile file s 第一種直接在命令列中執行,第二種把命令寫到了指令碼中,二者無本質區別。示例 1 列印hello.txt的內容 ...

一分鐘學awk夠用

1.什麼是awk 1 aho weinberger kernighan三位發明者名字首字母 2 乙個行文字處理工具 2.awk基本原理 2.1原理 逐行處理檔案中的資料 2.2語法 awk pattern 說明 1 單引號 是為了和shell命令區分開 2 大括號 表示乙個命令分組 3 patter...

一分鐘看懂mysql 一分鐘,看懂易貨

從20世紀80年代開始,易貨公司在美國加拿大 澳大利亞等國興起,成為這些國家減少現金用量 增加銷售 減少庫存 開發新客戶 開闢新市場 促進經濟發展的重要產業。也成為了企業消化庫存商品 剩餘生產能力 無形資產的有效方式和在遭遇資金瓶頸時的新選擇。2015年以來,中國線下易貨店開始了矇眼狂奔,在河南南陽...