移至主內容

嘗試讓物件導向更通俗的詮釋法

Submitted by 肥貓 on

之前受訓的末期,講師淺談了(Python)程式設計的物件導向。物件導向是在業界打滾的重要知識,不過對於新手來說技術門檻稍高。加上考證照、做期末專題等瑣事影響注意力,老師講得口沫橫飛,台下同學(如我)卻睡成一片。

結訓後我複習兼思考+檢討後,我想到一個似乎比較好理解,但是我不知道別人是否也很好理解的教法。但就姑且寫下來吧。

 

以一杯市售紅茶為例

假設您的桌上有杯A牌子的市售紅茶。看到他的營養標示這樣寫的(每100毫升)(不過這裡簡單起見,就沒做單位標示):

  1. 熱量:26.7大卡
  2. 蛋白質:0.2公克
  3. 脂肪:0公克
  4. 碳水化合物:6.6公克
  5. 鈉:2.8毫克

初學者鍵入Python的作法,通常就是為這些東西分別設定變數,如(下圖上半部):

black_tea_A_calories=26.7
black_tea_A_protein=0.2
black_tea_A_fat=0
black_tea_A_carbonhydrate=6.6
black_tea_A_na=2.8

 

這樣做沒什麼不好,但是您會看到右側變數欄會有5個變數。假設今天只有A牌子的紅茶還好辦,若今天還有B牌子、C牌子的紅茶,更有甚者還有綠茶...您會看到頭昏眼花,而且不小心就key變數key錯地方了。

所以比較聰明的方法,是像下半邊的物件導向寫法。裡面程式碼簡單的意思就是今天有個Class叫做Drink(飲料),然後這個飲料下面有這些資訊(就像標籤一樣);然後最後一行表示有個叫做black_tea_A(A牌子的紅茶),然後每個變數是剛剛那樣設定(不過我好像下面多key了一個品牌,但這差異在這裡不重要)。結果就會像這樣(下圖):

這樣存成物件後,你就會(視覺上)像一杯有完整營養標示的新鮮屋紅茶,出現在你面前了。這樣往後維護程式碼等也比較容易,各自飲料、產品的變數也不會混在一起。是不是很棒呢?