iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 13
0

題外話:今天風大連網站氣旋也大,TMD竟然在我寫完準備儲存時按到f5。先提醒大家要備份阿(欲哭無淚)...
https://ithelp.ithome.com.tw/upload/images/20190914/20117399hHSMFs1Jay.jpg
開玩笑的,就算非常不順也要讓一個月學習不間斷。頑張って~~/images/emoticon/emoticon08.gif


為何學習物件導向(OOP)?
物件導向可視為分析資料中不可或缺的一部份 在python的世界裡,所有東西皆可看成物件 所以學會OOP有助於python的編寫 尤其以後會講的gui編寫

  • 物件導向語言與函數型語言的差別

第12天 談函數時有提到,函數型它定義出來的值是有輸出跟輸入(值可變)的,但物件導向就不同了。它強調的是高彈性,定義出來的類別或物件值可調整但不會改變內容,而不是讓使用者隨意修改內容。 差異是:
函數跟內容是內容配合函數(函數最大) , 但物件導向是類別去配合物件(物件最大)

  • Class類別與 Object物件

class

既然物件最大,那class就只剩調用名稱的功能嗎?

class this_is_class(object):
        pass

當然不只,class與object中間可是定義對應名稱的好地方呢!(尤其方法的名稱),而這個地方也能定義物件的底線特性(以後會談)

object

物件內的東西包含了方法, 屬性 , 資訊…,所有的內容和方法都會寫在這裡面喔

class this_is_class(object):
    a = 123
    print(a)
print(this_is_class())

函式物件

有了函式物件才有了實體,因為像上面的輸出 你會發現連class的位址都一起輸出了 那是因為沒有一個實體可雙向呼叫的函式,所以把他結合在一起就變成可呼叫的物件了。
Ex:(建立物件跟其方法)

class hanima():
    name='comoco', 'boss'
    age=5 , 50
    def kemogi(x):
        print('yamede')
        return
    def hentai(y):
        a = 18
        print('boss fxxk you')
        return a
h = hanima()    #簡化類別
print(h.name , h.age) 
h.kemogi()
h.hentai()

由此可發現,大致上執行類別的定義可以如下:
類別.物件a.物件b... , class.objectA.objectB...
類別是指向所有在裡面物件的指標,而每個物件裡的方法就好像被包住一樣 就像一個實體(entity),所以OOP也被稱為模組化的展現。


總結:在python使用OOP如果要讓他模組化,必須擁有:
class ==> def(方法+物件屬性) ==> 行為實體


上一篇
[D12] 函數式設計
下一篇
[D14] OOP愛底線
系列文
從寫程式到脫離菜雞的歷練(以python為主的資處與檔案權限)32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言