Python入門篇 物件導向(第一部分)

2022-07-04 13:39:10 字數 3248 閱讀 5184

python中的類提供了物件導向程式設計的所有基本功能:類的繼承機制允許多個基類,派生類可以覆蓋基類中的任何方法,方法中可以呼叫基類中的同名方法。

語法格式如下:

class classname:

. .

.

類物件支援兩種操作:屬性引用和例項化。

屬性引用使用和 python 中所有的屬性引用一樣的標準語法:obj.name

類物件建立後,類命名空間中所有的命名都是有效屬性名。所以如果類定義是這樣:

#

!/usr/bin/python3

class

myclass:

"""乙個簡單的類例項

"""i = 12345

deff(self):

return

'hello world'#

例項化類

x =myclass() #

訪問類的屬性和方法

print("

myclass 類的屬性 i 為:

", x.i)

print("

myclass 類的方法 f 輸出為:

", x.f())

輸出結果;

myclass 類的屬性 i 為: 12345myclass 類的方法 f 輸出為: hello world

類有乙個名為 __init__() 的特殊方法(構造方法),該方法在類例項化時會自動呼叫,像下面這樣:

def __init__(self):

self.data =

當然,__init__() 方法可以有引數,引數通過 __init__() 傳遞到類的例項化操作上。例如:

#

!/usr/bin/python3

class

complex:

def__init__

(self, realpart, imagpart):

self.r =realpart

self.i =imagpart

x = complex(3.0, -4.5)

print(x.r, x.i) #

輸出結果:3.0 -4.5

self代表類的例項,而非類

類的方法與普通的函式只有乙個特別的區別——它們必須有乙個額外的第乙個引數名稱, 按照慣例它的名稱是 self。

class

test:

defprt(self):

print

(self)

print(self.__class__)

t =test()

t.prt()

其輸出結果為:

<__main__.test instance at 0x100771878>__main__.test

從執行結果可以很明顯的看出,self 代表的是類的例項,代表當前物件的位址,而 self.class 則指向類。

在類的內部,使用 def 關鍵字來定義乙個方法,與一般函式定義不同,類方法必須包含引數 self, 且為第乙個引數,self 代表的是類的例項。

#

!/usr/bin/python3

#類定義

class

people:

#定義基本屬性

name = ''

age =0

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

__weight =0

#定義構造方法

def__init__

(self,n,a,w):

self.name =n

self.age =a

self.

__weight =w

defspeak(self):

print("

%s 說: 我 %d 歲。

" %(self.name,self.age)) #

例項化類

p = people('

runoob

',10,30)

p.speak()

其輸入結果:

runoob 說: 我 10 歲。

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

class

derivedclassname(baseclassname1):

. .

.

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

#

!/usr/bin/python3

#類定義

class

people:

#定義基本屬性

name = ''

age =0

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

__weight =0

#定義構造方法

def__init__

(self,n,a,w):

self.name =n

self.age =a

self.

__weight =w

defspeak(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

#覆寫父類的方法

defspeak(self):

print("

%s 說: 我 %d 歲了,我在讀 %d 年級

"%(self.name,self.age,self.grade))

s = student('

ken',10,60,3)

s.speak()

其輸出結果為:

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

python基礎物件導向 上(入門篇 九)

2.類3.類的定義 4.引數self 5.總結 自己定義乙個類 使用class關鍵字來定義 語法 class 類名 塊 class myclass pass m myclass m是通過myclass建立的物件 m是myclass的例項 m2 myclass m2也是通過myclass建立的物件 m...

Python入門篇(一)

對了,入門篇都是python3.6的,其實只要有其它物件導向的經驗,看一遍就ok了,如果沒有基礎的朋友,可就得多寫幾遍嘍,理解物件的用法,未完待續 一 概念 類 用來描述具有 相同屬性和方法的物件的集合 二 命名方式 1 類名大駝峰 2 方法名小駝峰 3 嚴格區分大小寫 三 類的定義 class c...

Python 爬蟲入門篇(一)

注 本文資料來自 python網路爬蟲技術從入門到實踐 第一步 獲取網頁 基礎技術 requests urllib 和selenium 模擬瀏覽器 高階技術 多執行緒抓取 登入抓取 突破ip抓取和伺服器抓取 第二步 解析網頁 基礎技術 re正規表示式 beautifulsoup和lxml 高階技術 ...