這篇的靈感是來至
https://ithelp.ithome.com.tw/articles/10185648
我也是先學R在學Py的
所以深有所感
網路上很多code 都是用物件導向的寫法
看起來就是很威 所以我也來偷學一下
物件導向其實較適合大型的專案
因為寫出來的子程式可以很快的呼叫
也可以很容易的互相交換使用
下面我就用我知道的簡單例子 來說說物件導向
首先呢 物件導向的起手式
需要 class, __init__ , self 這三個關鍵字
# 我來定義一個 物件 他裏面包含了 身高 和 台斤
# XXX 是我亂取的名字
#詳細寫出來如下
#至於為什麼要用 __init__ 和 self 我不是很清楚 就當作固定的寫法吧..
class XXX:
def __init__(self,h,w): # __init__ 一樣是一個函數
self.height=h # self 指得是整個物件本身
self.weight=w*0.6 ##公斤轉台斤
# 然後我們定了兩個附屬的屬性? h 和 w
# 不懂的話先想成是專門定給 self 的函數吧
# 函數名稱分別是 height 和 weight
# 函數內容分別就是 h 和 w *0.6
#定義好了之後 我們來跑跑看吧
QQ=XXX(170,100)
# 以函數來看是應該要填三個欄位 但是self就跳過吧!!
# 所以我分別輸數了 身高為170 和 體重為 100公斤
# 我們看看他 print 出來的樣子
# 可以看到 "XXX object" 恩..意思就是我們建出了XXX的物件
# 我們可以很輕易地用 QQ.height,QQ.weight 叫出我們要的東西
print(QQ)
print(QQ.height,QQ.weight)
#接下來 我們可以加入一些 def 讓我們定義的物件豐富些
class XXX:
def __init__(self,h,w):
self.height=h
self.weight=w*0.6
def PRI(self):
print("身高",self.height, "台斤為" , self.weight)
#我定了一個幫我把身高和台斤都 print 出來的函數 叫 PRI
#呼叫得時候一樣用 點號 就可以
#但使用時記得加()喔
QQ=XXX(170,100)
QQ.PRI()
## 最後介紹一下繼承這個功能
## 這也是我說為甚麼物件導向適合大型的專案
## 當我們覺得剛寫的 XXX 這個物件很不錯
## 我不想動 我寫好的 XXX
## 但又想要把它的功能用到其他物件裡
## 我可以使用承繼的功能
#寫法如下:
class XXXX(XXX): ### 簡單來講就是把 self 改成 XXX
def PRI2(self): ### __init__ 就不用囉
print("身高一樣",self.height, "但我長胖了" , 3 ,'斤')
QQQ = XXXX(170,100)
QQQ.PRI2()
像這樣子 比如有個大案子 要來分工進行
我就可以從 XXX 這個物件 先起個頭
然後依著下去分工 可能有 XXX1 XXX2 ...
這些都不影響我本來的物件
最後一起合成起來 作為我們最後的產品
好啦 今天就介紹到這邊
以後寫程式的時候
不管是為了耍帥~ 還是合作的夥伴喜歡這樣寫
都可以練習寫寫看...
code 放在 : http://ge.tt/5DLkhXt2
下次見~