面向過程程序設(shè)計(jì)&面向?qū)ο蟪绦蛟O(shè)計(jì)

概念

面向過程編程:把計(jì)算機(jī)程序視為一系列的命令集合,即一組函數(shù)的順序執(zhí)行,簡(jiǎn)化程序設(shè)計(jì)。面向過程把函數(shù)繼續(xù)切分為子函數(shù),即把大塊函數(shù)切割成小塊函數(shù),降低系統(tǒng)的復(fù)雜度。


面向?qū)ο缶幊蹋喊延?jì)算機(jī)程序視為一組對(duì)象集合,每個(gè)對(duì)象都可以接收其它對(duì)象發(fā)來的消息,并處理這些消息。計(jì)算機(jī)程序的執(zhí)行就是一系列消息在各個(gè)對(duì)象之間的傳遞。

Point:面向?qū)ο缶幊?/h1>
- class Student(object):
// object 是所有類最終都會(huì)繼承的類
// class Student(object):
- __init__方法
// 通過該特殊的方法在創(chuàng)建實(shí)例的時(shí)候吧屬性綁定上去
// def __init__(self,name,score):
- 參數(shù)self
// __init__方法的第一個(gè)參數(shù),在__init__方法內(nèi)部將各種屬性綁定到self,self指向創(chuàng)建的實(shí)例本身。
#Summary:
-類是創(chuàng)建實(shí)例的模板,而實(shí)例是一個(gè)個(gè)個(gè)具體的對(duì)象,各實(shí)例擁有的數(shù)據(jù)都相互獨(dú)立,互不影響。
-方法是實(shí)例綁定的函數(shù),和普通函數(shù)不同,方法可以直接訪問實(shí)例的數(shù)據(jù)。
-在 Python中,實(shí)例的變量名如果以 __ 開頭,就變成了一個(gè)私有變量(private),只有內(nèi)部可以訪問,外部不能訪問。

封裝

  • 在類的內(nèi)部定義訪問數(shù)據(jù)的函數(shù),這樣就將“數(shù)據(jù)”封裝起來了。
def print_score(self):
    print("%s %s"%(self.name,self.score))

封裝的另一個(gè)好處是可以為類增添新的方法。

訪問控制

- 實(shí)例的變量名如果以 __ 開頭,就變成了一個(gè)私有變量(private),只有內(nèi)部可以訪問,外部不能訪問
- 確保外部代碼不能隨意修改對(duì)象內(nèi)部的狀態(tài),通過訪問限制的保護(hù),使代碼更加健壯。
- 但還是可以通過在類中添加方法來訪問

繼承

??繼承最大的好處是子類獲得了父類的全部功能。但也可以給子類添加方法,當(dāng)子類和父類存在相同的方法時(shí),子類的方法會(huì)覆蓋父類的方法。

多態(tài)

  • 在繼承關(guān)系中,如果一個(gè)實(shí)例的數(shù)據(jù)類型是某個(gè)子類,那它的數(shù)據(jù)類型也可以被看做是父類。但是,反過來就不行。
  • 調(diào)用方只管調(diào)用,不管細(xì)節(jié)

Summary

  • 有了繼承,才能有多態(tài)。在調(diào)用類實(shí)例方法的時(shí)候,盡量把變量視作父類類型
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容