這篇的靈感是來至
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
下次見~

 

arrow
arrow

    Markjong001 發表在 痞客邦 留言(1) 人氣()