python學習筆記 類和例項

2021-07-25 18:41:45 字數 2617 閱讀 4061

類是一種資料結構,可用於建立例項。(一般情況下,類封裝了資料和可用於該資料的方法)

python類是可呼叫的物件,即類物件

類通常在模組的頂層進行定義,以便類例項能夠在類所定義的源**檔案中的任何地方被建立。

例項初始化

instance = classname(args....)

類在例項化時可以使用__init__和__del__兩個特殊的方法。

class classname(base):

『class documentation string』 #類文件字串

class suite #類體

base:超類是乙個或多個用於繼承的父類集合

類體可以包括:宣告語句、類成員定義、資料屬性、方法

如果類不存在繼承關係,就不提供括號裡的base

class firstclass():

spam = 30 #類資料屬性

def display(self): #類方法

print self.spam

x = firstclass() #建立類例項

x.display() #方法呼叫

30

dir(firstclass)

[『doc『, 『module『, 『display』, 『spam』]

class語句類似def,是可執行**;直到執行class語句後,類才會建立

class語句內,任何賦值語句都會建立類屬性

每個例項物件都會繼承類的屬性並獲得自己的命名空間

python類方法及呼叫

例項(物件)包含的屬性

可呼叫的屬性:方法

資料屬性

在oop中,例項就像是帶有「資料」的記錄,而類是處理這些記錄的「程式」

通過例項呼叫方法相當於呼叫所屬類的方法來處理當前例項。

比如之前的**例子,x.display() 會被自動轉換為 firstclass.display(x),即呼叫類的方法來處理例項x

因此,類中每個方法必須有self引數,它隱含當前例項之意

在方法內對self屬性做賦值運算會產生每個例項自己的屬性

python規定,沒有例項,方法不允許被呼叫,這是『繫結』(binding)的概念

class語句中的賦值語句會建立類屬性,如前面例子的spam

在類方法中對傳給方法的特殊引數self進行賦值會建立例項屬性

python構造器

建立例項時,python會自動呼叫類中的__init__方法,以**的為例項提供屬性

__init__方法被稱為構造器

如果類中沒有定義__init__方法,例項建立之初僅僅是乙個簡單的命名空間。

__init__的第乙個引數一定是self

self 變數用於在類例項方法中引用方法所繫結的例項。因為方法的例項在任何方法呼叫中總是作為第乙個引數傳遞的,self 被選中用來代表例項。你必須在方法宣告中放上 self,但可以在方法中不使用例項(self)。如果你的方法中沒有用到 self , 那麼請考慮建立乙個常規函式,除非你有特別的原因。畢竟,你的方法**沒有使用例項,沒有與類關聯其功能,這使得它看起來更像乙個常規函式。在其它物件導向語言中,self 可能被稱為 this。

__init__不能返回任何物件

析構函式:__del__

建構函式是必要的,而析構函式常常可以不考慮(python直譯器會自己**)

class myclass():

definit(self, name):

self.name = name

print 『my name is 』 + self.name

defdel(self):

print self.name + 』 is dead.』

i1 = myclass(『shaw』)

my name is shaw

del i1

shaw id dead.

類的特殊屬性

使用dir()或__dict__,檢視類或例項的屬性

__doc__:獲取文件字串

__base__:獲取所有父類

__module__:類所在的模組

__name__:例項所屬類的名字

python類方法中可用的變數

例項變數:self.變數名

區域性變數:方法內部建立的變數,可直接使用

靜態變數:類中定義的變數。類名.變數名

全域性變數:直接使用

繼承

繼承描述了基類的屬性如何『遺傳』給派生類

子類可以繼承他的基類的任何屬性,包括資料屬性和方法

乙個未指定基類的類,其預設有乙個叫object的基類

python允許多重繼承(可以繼承多個父類)

python學習筆記7 類和例項

類是抽象的模板,而例項是根據類建立出來的乙個個具體的 物件 class 內部有屬性和方法 下面的object是繼承的類 self可以當做類裡面的例項的 形參 由於類可以起到模板的作用,因此,可以在建立例項的時候,把一些我們認為必須繫結的屬性強制填寫進去。通過定義乙個特殊的 init 方法,在建立例項...

python學習筆記 21 類和例項

物件導向最重要的概念就是類 class 和例項 instance 必須牢記類是抽象的模板,比如student類,而例項是根據類建立出來的乙個個具體的 物件 每個物件都擁有相同的方法,但各自的資料可能不同。仍以student類為例,在python中,定義類是通過class關鍵字 class stude...

python學習 類和例項

物件導向最重要的概念就是類 class 和例項 instance 必須牢記類是抽象的模板,比如student類,而例項是根據類建立出來的乙個個具體的 物件 每個物件都擁有相同的方法,但各自的資料可能不同。仍以student類為例,在python中,定義類是通過class關鍵字 class stude...