以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...