Python學習筆記(十五) 類基礎

2021-09-09 00:19:17 字數 1942 閱讀 4523

以mark lutz著的《python學習手冊》為教程,每天花1個小時左右時間學習,爭取兩周完成。 --- 寫在前面的話

2013-7-24 23:59 學習筆記

1,python中的大多數oop故事都可以簡化為乙個表示式:object.attribute 當類啟用時,為了找出attribute首次出現的地方,python會先搜尋object,然後是該物件之上的所有類,安裝由下至上、由左至右的方式搜尋。

2,呼叫類的函式時,總是隱含著類的例項。附加在例項上的屬性只屬於那些例項,但附加在類上的屬性由所有子類和例項共享。

3,同def一樣,class也是可執行語句,執行時會產生新的類物件,並將其複製給class頭部的變數名。class語句內的頂層賦值語句(不在def中)會建立類的屬性,為所有例項共享。在方法內對self屬性賦值會產生每個例項自己的屬性。例如:

class firstclass:

def setdata(self, value):

self.data = value

def display(self):

print self.data

x = firstclass()

y = firstclass()

x.setdata(3.14)

y.setdata('hello world')

x.display()

y.display()

輸出結果為:

3.14

hello world

4,超類列在了類開頭的括號中。類從超類中繼承所有可讀屬性。例如:

class firstclass:

def setdata(self, value):

self.data = value

def display(self):

print self.data

class secondclass(firstclass):

def display(self):

print 'secondclass: %s' %self.data

x = secondclass()

x.setdata('linlin')

x.display()

輸出結果為:

secondclass: linlin

5,類名稱總是存在於模組中,類也是模組的屬性。

6,python通過在類中定義雙下劃線命名的方法(具體的方法名,python已經規定好)來實現運算子過載。__init__方法則實現的是建構函式。例如:

class firstclass:

def setdata(self, value):

self.data = value

def display(self):

print self.data

class secondclass(firstclass):

def __init__(self, value):

self.data = value

def __add__(self, other):

return secondclass(self.data + other)

def __mul__(self, other):

return secondclass(self.data * other)

x = secondclass('linlin')

x.display()

y = x + 'mo'

y.display()

z = x * 3

z.display()

輸出結果為:

linlin

linlinmo

linlinlinlinlinlin

Python學習筆記(十五) 類基礎

以mark lutz著的 python學習手冊 為教程,每天花1個小時左右時間學習,爭取兩周完成。寫在前面的話 2013 7 24 23 59 學習筆記 1,python中的大多數oop故事都可以簡化為乙個表示式 object.attribute 當類啟用時,為了找出attribute首次出現的地方...

PYTHON基礎知識學習筆記(十五)

python操作sqlite 1 null 值是乙個 null 值。2 integer 值是乙個帶符號的整數,根據值的大小儲存在 1 2 3 4 6 或 8 位元組中。3 real 值是乙個浮點值,儲存為 8 位元組的 ieee 浮點數字。4 text 值是乙個文字字串,使用資料庫編碼 utf 8 ...

Python學習筆記(十五)python檔案操作

f1 open r e python data data1.txt 讀取data1.txt檔案,使用系統預設緩衝區大小,為了讀取快點,使用快取吧!p1 f.read 5 先讀5個位元組 p2 f.read 餘下的都讀出來 f.close f open r e python data data3.tx...