題外話:今天風大連網站氣旋也大,TMD竟然在我寫完準備儲存時按到f5。先提醒大家要備份阿(欲哭無淚)...
開玩笑的,就算非常不順也要讓一個月學習不間斷。頑張って~~
為何學習物件導向(OOP)?
物件導向可視為分析資料中不可或缺的一部份 在python的世界裡,所有東西皆可看成物件 所以學會OOP有助於python的編寫 尤其以後會講的gui編寫
第12天 談函數時有提到,函數型它定義出來的值是有輸出跟輸入(值可變)的,但物件導向就不同了。它強調的是高彈性,定義出來的類別或物件值可調整但不會改變內容,而不是讓使用者隨意修改內容。 差異是:函數跟內容是內容配合函數(函數最大) , 但物件導向是類別去配合物件(物件最大)
既然物件最大,那class就只剩調用名稱的功能嗎?
class this_is_class(object):
pass
當然不只,class與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(方法+物件屬性) ==> 行為實體