從最初的「hello world」,走到物件導向。該回過頭來看看,教程中是否遺漏了什麼。
我們之前提到一句話,"everything is object". 那麼我們就深入體驗一下這句話。
需要先要介紹兩個內建函式,dir()和help()
dir()用來查詢乙個類或者物件所有屬性。你可以嘗試一下
>>>print dir(list)
help()用來查詢的說明文件。你可以嘗試一下
>>>print help(list)
(list是python內建的乙個類,對應於我們之前講解過的列表)
在上面以及看到,表是python已經定義好的乙個類。當我們新建乙個表時,比如:
>>>nl = [1,2,5,3,5]
實際上,nl是類list的乙個物件。
實驗一些list的方法:
>>>print nl.count(5) # 計數,看總共有多少個5
>>>print nl.index(3) # 查詢 nl 的第乙個3的下標
>>>nl.sort() # 對nl的元素排序
>>>print nl.pop() # 從nl中去除最後乙個元素,並將該元素返回。
>>>nl.remove(2) # 從nl中去除第乙個2
>>>nl.insert(0,9) # 在下標為0的位置插入9
總之,list是乙個類。每個列表都屬於該類。
python補充中有list常用方法的附錄。
使用dir(list)的時候,能看到乙個屬性,是__add__()。從形式上看是特殊方法(下劃線,下劃線)。它特殊在哪呢?
這個方法定義了"+"運算子對於list物件的意義,兩個list的物件相加時,會進行的操作。
>>>print [1,2,3] + [5,6,9]
運算子,比如+, -, >,
嘗試一下
>>>print [1,2,3] - [3,4]
會有錯誤資訊,說明該運算子「-」沒有定義。
現在我們繼承list類,新增對"-"的定義
class內建函式len()用來返回list所包含的元素的總數。superlist(list):
def__sub__
(self, b):
a =self[:] # 這裡,self是supelist的物件。由於superlist繼承於list,它可以利用和list[:]相同的引用方法來表示整個物件。
b =b[:]
while len(b) >0:
element_b =b.pop()
if element_b in
a: a.remove(element_b)
return
aprint superlist([1,2,3]) - superlist([3,4])
內建函式__sub__()定義了「-」的操作:從第乙個表中去掉第二個表中出現的元素。如果__sub__()已經在父類中定義,你又在子類中定義了,那麼子類的物件會參考子類的定義,而不會載入父類的定義。任何其他的屬性也是這樣。
(教程最後也會給出乙個特殊方法的清單)
定義運算子對於複雜的物件非常有用。舉例來說,人類有多個屬性,比如姓名,年齡和身高。我們可以把人類的比較(>,
希望你已經對python有了乙個基本了解。你可能躍躍欲試,要寫一些程式練習一下。這會對你很有好處。
但是,python的強大很大一部分原因在於,它提供有很多已經寫好的,可以現成用的物件。我們已經看到了內建的比如說list,還有tuple等等。它們用起來很方便。在python的標準庫里,還有大量可以用於作業系統互動,internet開發,多執行緒,文字處理的物件。而在所有的這些的這些的基礎上,又有很多外部的庫包,定義了更豐富的物件,比如numpy, tkinter, django等用於科學計算,gui開發,web開發的庫,定義了各種各樣的物件。對於一般使用者來說,使用這些庫,要比自己去從頭開始容易得多。我們要開始攀登巨人的肩膀了。
謝謝你的關注,
歡迎來到python的世界。
len() dir() help()
資料結構list(列表)是乙個類。
運算子是方法
Python基礎10 反過頭來看看
從最初的 hello world 走到物件導向。該回過頭來看看,教程中是否遺漏了什麼。我們之前提到一句話,everything is object 那麼我們就深入體驗一下這句話。需要先要介紹兩個內建函式,dir 和help dir 用來查詢乙個類或者物件所有屬性。你可以嘗試一下 print dir ...
Python基礎10 反過頭來看看
從最初的 hello world 走到物件導向。該回過頭來看看,教程中是否遺漏了什麼。我們之前提到一句話,everything is object 那麼我們就深入體驗一下這句話。需要先要介紹兩個內建函式,dir 和help dir 用來查詢乙個類或者物件所有屬性。你可以嘗試一下 print dir ...
Python基礎10 函式
直接貼筆記 usr bin env python coding utf 8 定義函式時要寫成良好的注釋習慣 通常用三個單引號 deftest x 計算乙個y 2 x 1 param x 整型 return 整型 y 2 x 1 returny print test print test 4 本次課參...