標籤:定製 情境 屬性 開發效率 物件導向編程 python面向對 code 理解 豬八戒
Python物件導向的初始
面向過程的程式設計的核心是過程(流水線式思維),過程即解決問題的步驟,面向過程的設計就好比精心設計好一條流水線,考慮周全什麼時候處理什麼東西。
優點是:極大的降低了寫程式的複雜度,只需要順著要執行的步驟,堆疊代碼即可。
缺點是:一套流水線或者流程就是用來解決一個問題,代碼牽一髮而動全身。
應用情境:一旦完成基本很少改變的情境,著名的例子有Linux內核,git,以及Apache HTTP Server等。
物件導向的程式設計的核心是對象(上帝式思維),要理解對象為何物,必須把自己當成上帝,上帝眼裡世間存在的萬物皆為對象,不存在的也可以創造出來。物件導向的程式設計好比如來設計西遊記,如來要解決的問題是把經書傳給東土大唐,如來想了想解決這個問題需要四個人:唐僧,沙和尚,豬八戒,孫悟空,每個人都有各自的特徵和技能(這就是對象的概念,特徵和技能分別對應對象的屬性和方法),然而這並不好玩,於是如來又安排了一群妖魔鬼怪,為了防止師徒四人在取經路上被搞死,又安排了一群神仙保駕護航,這些都是對象。然後取經開始,師徒四人與妖魔鬼怪神仙互相纏鬥著直到最後取得真經。如來根本不會管師徒四人按照什麼流程去取。
物件導向的程式設計的
優點是:解決了程式的擴充性。對某一個對象單獨修改,會立刻反映到整個體系中,如對遊戲中一個人物參數的特徵和技能修改都很容易。
缺點是:可控性差,無法向面向過程的程式設計流水線式的可以很精準的預測問題的處理流程與結果,物件導向的程式一旦開始就由對象之間的互動解決問題,即便是上帝也無法預測最終結果。於是我們經常看到一個遊戲人某一參數的修改極有可能導致陰霸的技能出現,一刀砍死3個人,這個遊戲就失去平衡.
應用情境:需求經常變化的軟體,一般需求的變化都集中在使用者層,互連網應用,企業內部軟體,遊戲等都是物件導向的程式設計大顯身手的好地方。
在python 中物件導向的程式設計並不是全部。
物件導向編程可以使程式的維護和擴充變得更簡單,並且可以大大提高程式開發效率 ,另外,基於物件導向的程式可以使它人更加容易理解你的代碼邏輯,從而使團隊開發變得更從容。
瞭解一些名詞:類、對象、執行個體、執行個體化
類:具有相同特徵的一類事物(人、狗、老虎)
對象/執行個體:具體的某一個事物(隔壁阿花、樓下旺財)
執行個體化:類——>對象的過程
類的相關知識:
聲明:
def functionName(args): ‘函數文檔字串‘ 函數體 ‘‘‘class 類名: ‘類的文檔字串‘ 類體‘‘‘#我們建立一個類class Data: pass
屬性:
class Person: #定義一個人類 role = ‘person‘ #人的角色屬性都是人 def walk(self): #人都可以走路,也就是有一個走路方法 print("person is walking...")print(Person.role) #查看人的role屬性print(Person.walk) #引用人的走路方法,注意,這裡不是在調用
執行個體化:類名加括弧就是執行個體化,會自動觸發__init__函數的運行,可以用它來為每個執行個體定製自己的特徵
class Person: #定義一個人類 role = ‘person‘ #人的角色屬性都是人 def __init__(self,name): self.name = name # 每一個角色都有自己的暱稱; def walk(self): #人都可以走路,也就是有一個走路方法 print("person is walking...")print(Person.role) #查看人的role屬性print(Person.walk) #引用人的走路方法,注意,這裡不是在調用
Python物件導向初始