“ 類是面向對象語言的程式設計中的概念,是面向對象程式設計的基礎。類的實質是一種引用資料類型,類似于 byte、short、int(char)、long、float、double 等基本資料類型,不同的是它是一種複雜的資料類型。因為它的本質是資料類型,而不是資料,是以不存在于記憶體中,不能被直接操作,隻有被執行個體化為對象時,才會變得可操作。(來自“百度百科”)”
在學習類之前我們先來熟悉一下面向過程和面向對象。
01
—
面向對象和面向對象
面向過程與面向對象是兩種程式設計風格、思想;
- 面向過程是基于流程的,将所要處理的事情細分到一個個小的步驟,然後按照順序依次執行,每一個步驟都可以采用一個函數來實作,這個思路比較符合我們現實中處理事情的方式;
- 缺點就是前後事務關聯性較大,後期維護成本高;
- 優點是效率高,結構清晰
- 面向過程是一種基礎的思維方法
與面向過程強調流程和步驟不同的是,面向對象更關注對象,也就是“誰”做什麼事情,将要做的處理的事情分解到不同的對象,不同的對象通過方法來處理其所要負責的部分
- 面向對象的基礎是對象,對象是類的執行個體化,類是對象的抽象化;
- 類,顧名思義就是分類,将現實生活具有相同特征的事物進行抽象化,比如越野車、小轎車、商務車都可以歸為車這一類;
- 在python中,類也是一種資料類型,隻不過是一種複雜的資料類型;
02
—
類
類包含屬性和方法,屬性描述類的特性,方法描述類的行為。
比如上面例子中的類:車
屬性有:長、寬、高、功率
方法有:啟動,停止、前進、轉彎
我們用
class ClassName:
code
來定義類,用
def methodName():
code
來建立類的方法。
我們來建立一個類:
import math
class myCircle():
def __init__ (self,a=0,b=0,c=0):
self.x=a
self.y=b
self.r=c
def getCircleArea(self):
return self.r**2*math.pi
def getDistenceFromO(self):
return math.sqrt(self.x**2+self.y**2)
def getX(self):
return self.x
def getY(self):
return self.y
def getR(self):
return self.r
這個類是用來描述一個圓,有屬性x,y和r,分别代表圓心的坐标和圓的半徑,有方法getX(),getY(),getR(),getCircleArea()以及getDistenceFromO()
用來擷取圓的三個屬性以及計算圓的面積和圓心到原點的距離。
建立好類之後,我們來運用類。
a=myCircle(3,4,5)
print(a.getX())
print(a.getY())
print(a.getR())
print(a.getDistenceFromO())
print(a.getCircleArea())
上面的a是類myCircle執行個體化的一個對象,然後來調用a的方法,我們看結果:
03
—
SPIKE中的類
在樂高的程式設計中,我們的集線器hub,以及所有的傳感器和硬體在python中其實都是被封裝好的類,我們直接調用就可以,這就是在SPIKE中進入python程式設計頁面上面預設的幾行代碼的含義;
我們無須知道這些類具體是如何定義編寫的,我們隻需要掌握如何運用這些類以及其中的方法就行,具體的可以參考SPIKE中的知識庫: