支援物件的程式語言稱為「物件導向程式語言」(Object-oriented programming language, OOPL),Python 屬此類語言. (2) 類別. ∗ 類別(Class). ▸ 每個物件都是某個 ...
序言
Python簡介
執行Python程式
Python的資料
除錯
小烏龜繪圖模組
Python模組
字串
串列與字組
字典
決策結構
迴圈
函式
檔案
例外處理
物件與類別
第15章 物件與類別
(1)物件簡介
∗物件(Object):
▸物件用來描述一個物體、一件事、或一個人,物件內含:
✶資訊
✶可執行的操作,用來處理資訊
▸以物件的概念來解決問題,稱為「物件導向程式設計」(Object-orientedprogramming,OOP)
▸支援物件的程式語言稱為「物件導向程式語言」(Object-orientedprogramminglanguage,OOPL),Python屬此類語言
(2)類別
∗類別(Class)
▸每個物件都是某個類別(Class)所產生的一個實例(Instance),就好像工廠裡一個模具可以產生許多相同規格的產品一般:模具就是類別,產品就是實例
▸類別裡可包含屬性(Attribute)及方法(Method)
✶屬性:儲存物件的資訊,也就是變數
✶方法:操作物件的資訊,也就是函式
∗建立類別的語法
▸一般類別:
class:
...
✶例如:圓(Circle)
circle.py(首先建立python/ch15目錄)
classCircle:
cx=0
cy=0
radius=0
defsetColor(self,color):
self.color=color
#類別名稱為Circle(通常使用大寫)
#定義三個屬性:圓心位置座標(cx,cy)
及半徑(r),預設值都是0
#定義一個方法set_color():用來設定顏色,有兩個參數self
與color
*類別方法的第一個參數一定是self(
為什麼一定要有這個參數?)
*在方法中存取物件屬性需在屬性名稱前加上self.,此例中只要執行
set_color()方法,就會動態新增一個color屬性
*在方法中沒有self.前置的變數是區域變數,方法執行完畢即不存在,例如
set_color()方法中的紅色color:
classCircle:
defset_color(self,color):
self.color=color
▸繼承類別(Inheritance):在類別名稱後加小括號,內含所繼承類別的名稱(稱為「父類別」,Parentclass)
class():
...
✶例如:Ball類別繼承Circle類別
classBall(Circle):
cz=0
#類別名稱為Ball,繼承自Circle類別,
因此擁有該類別裡的所有屬性與方法:cx,cy,radius,setColor()
#本類別另外再定義一個屬性:球心第三維座標cz
(3)產生物件
∗物件的產生
▸語法:在類別名稱後加上一對小括號,並指派給一個變數即可產生一個實例
=()
▸()稱為建構子(Constructor),用來產生新的實例
▸以Circle與Ball類別為例,
以下分別產生一個名為circle及ball的實例:
circle=Circle()
ball=Ball()
∗存取屬性與執行方法
▸語法:都是利用點號