類與物件:
物件=屬性+方法
用class定義python類,然後接類的名稱和冒號。
python的self相當於c++的this指標。 self是類中乙個額外的第乙個引數名稱 在呼叫方法時 無需明確提供與引數self相對應的引數。
魔法方法:init(self[,param1,param2…])這個方法在類例項化時會自動呼叫。
python在變數名或者函式名前加 __ 函式或變數就會成為私有的元素。但是python的私有並不是真正的私有,仍然可以通過其他的輸出方式來輸出。python的私有只是把變數或者函式的名稱進行了改變。
python支援多繼承,但是盡量不要使用多繼承,容易引起混亂。
類:類物件:建立乙個類,就是乙個物件在記憶體開闢了一塊空間,稱為類物件,類物件只有乙個。
例項物件:通過例項化建立的物件,稱為例項物件,例項物件可以有多個。
類屬性:類裡面方法之前定義的變數就為類屬性。多個例項物件之間共享乙個類屬性。
例項屬性:例項屬性和具體的某個例項物件有關係,只能在自己的物件裡面使用。
屬性和方法名相同會使屬性覆蓋方法。
python要求方法需要有例項才能被呼叫,這就是python的繫結概念。
直接訪問__dict__可以獲取python物件的資料屬性。
內建函式(bif):
issubclass(class,classinfo)判斷class是否為classinfo的子類。 乙個類是其自身的子類。
isinstance(object,classinfo)判斷乙個物件是否為乙個已知的型別。
type()不考慮繼承關係,isinstance考慮繼承關係。
hasattr(object,name)判斷物件是否包含對應的屬性。
getattr(object,name[,default])用於返回乙個物件屬性值。
setattr(object,name,value)設定乙個屬性值,屬性不一定存在。
delattr(object,name)刪除乙個屬性。
class property([fget[,fset[,fdel[,doc]]]])在新式類中返回屬性值。
??????
在方法前面加上 __
沒有在括號中新增self關鍵字
魔法方法:class
ticket()
:def
__init__
(self, adult, kid, day)
: self.adult = adult
self.kid = kid
self.day = day
self.price =
100def
sum_price
(self)
:if self.day in
range(1
,6):
("總票價為: %d 元"
%(self.price *
(self.adult+self.kid/2)
))else
("總票價為: %d 元"
%(self.price*
1.2*
(self.adult+self.kid/2)
))p = ticket(3,
1,5)
p.sum_price(
)
魔法方法總是被雙下劃線包圍。
定製序列:
如果定製的容器不可變,只定義__len__()和__getitem__()方法。
如果可變還需要定義__setitem__()delitem()
練習題:
1.new:建構函式,建立並返回乙個例項物件
init:初始化函式,在建立例項物件為其賦值時使用
str:在將物件轉換成字串 str(物件) 測試的時候,列印物件的資訊
repr_:str的備胎,在有__str__的時候執行__str__,沒有實現__str__的時候,執行__repr__
getitem:定義獲取容器中元素的行為
setitem:定義設定容器中指定元素的行為
2.
import time
class
timer()
:def
__init__
(self)
:print()
self.__info =
'未開始計時!'
self.__kaishi =
none
self.__jieshu =
none
self.__jg =
0def
__str__
(self)
:return self.__info
def__repr__
(self)
:return self.__info
defstart
(self)
('計時開始'
) self.__kaishi = time.localtime(
)def
stop
(self):if
not self.__kaishi:
print()
return
self.__jieshu = time.localtime(
) self.__jg = time.mktime(self.__jieshu)
- time.mktime(self.__kaishi)
self.__info =
'共執行了%d秒'
% self.__jg
('計時結束!'
)return self.__jg
def__add__
(self, other)
:return
'共執行了%d秒'
%(other.__jg + self.__jg)
學習筆記10
2.塊裝置i o棧 2.1基本概念 介紹塊裝置的i o棧之前,我們先來了解一下塊i o棧的幾個基本概念。1 bio bio是通用塊層i o請求的資料結構,表示上層提交的i o請求,乙個bio包含多個page,這些page必須對應磁碟上一段連續的空間。由於檔案在磁碟上並不連續存放,檔案i o提交到塊裝...
python numpy 學習筆記 10
1.矩陣的相關操作 求逆,求解線性方程組,求解特徵值,求解特徵向量,奇異值分解 coding utf 8 from numpy import a mat 0 1 2 1 0 3 4 3 8 inverse linalg.inv a print inverse print a.i print a in...
linux學習筆記10
find搜尋命令 which 查詢可執行檔案的絕對路徑。它只是用來查詢path環境變數中出現的路徑下的可執行檔案,比如我們不知道某個命令的絕對路徑which一下就知道了。whereis b 只找binary檔案 m 只找在說明檔案manual路徑下的檔案。u 沒有說明檔的檔案。find搜尋檔案 fi...