Python 第七節 第四課

2021-10-09 22:57:26 字數 1634 閱讀 9429

[toc]

物件導向 ( object oriented programming, oop ) 程式設計的思想主要是針對大型軟體設計而來的. 物件導向程式設計使程式的擴充套件性更強, 可讀性更好, 使的程式設計可以像搭積木一樣簡單

物件導向程式設計將資料和運算元據相關的方法封裝到物件中, 組織**和資料的方式更加接近人的思維, 從而大大提高了程式設計的效率.

python 完全採用了物件導向的思想, 是真正物件導向的程式設計物件的編譯語言, 完全支援物件導向的基本功能, 例如: 繼承, 多型, 封裝等.

python 中, 一切皆物件. 我們在前面學習的資料型別, 函式等, 都是物件.

注: python 支援面向過程,物件導向,函式式程式設計等多種程式設計正規化.

面向過程程式設計更加關注的是 "程式的邏輯流程", 是一種 "執行者" 思維, 適合編寫小規模的程式.

面向過程思想思考問題時, 我們首先思考 "怎麼按步驟實現 ?" 並將步驟對應成方法, 一步一步, 最終完成. 這個適合簡單任務, 不需要過多協作的情況下. 比如, 如何開車 ? 

1. 發動車     2. 掛擋     3. 踩油門     4. 走你

面向過程合適簡單, 不需要協作的事物. 但是我們思考比較複雜的問題, 比如 "如何造車 ?", 就會發現列出 1234 這樣的步驟, 是不可能的. 那是因為, 造車太複雜, 需要很多協作才能完成. 此時物件導向思想就應運而生了.

物件導向更加關注的是 "軟體中物件之間的關係", 是一種 "設計者" 思維, 適合編寫大規模的程式.

物件導向 ( object ) 思想更契合人的思維模式. 我們首先思考的是 "怎麼設計這個事物 ?" 比如思考造車, 我們就會思考 "車怎麼設計 ?", 而不是 "怎麼按步驟造車的問題". 這就是思維方式的轉變.

物件導向的方式思考造車 發現車由如下物件組成:

1. 輪胎

2. 發動機

3. 車殼

4. 座椅

5. 擋風玻璃

為了便於協作, 我們找輪胎廠完成製造輪胎的步驟, 發動機廠完成製造發動機的步驟. 這樣, 發現大家可以同時進行車的製造, 最終進行組裝, 大大提高了效率. 但是, 具體到輪胎廠的乙個流水線操作, 任然是有步驟的, 還是離不開面向過程思想 !

因此, 物件導向可以幫助我們從巨集觀上把握, 從整體上分析整個系統. 但是, 具體帶實現部分的圍觀槽子 ( 就是乙個個方法 ), 任然需要面向過程的思路去處理.

我們千萬不要打面向過程和物件導向對立起來. 他們是相輔相成的. 物件導向離不開面向過程 !

物件導向思考方式

遇到複雜問題, 先從問題中找名詞 ( 面向過程更多的是找動詞 ), 然後確立這些名詞哪些可以作為類, 再根據問題需求確定的類的屬性和方法, 確定類之間的關係.

都是解決問題的思維方式, 都是**組織的方式

解決簡單問題可以使用面向過程

解決複雜問題: 巨集觀上使用物件導向把握, 微觀處理是任然是面向過程.

乙個是 "執行者思維", 乙個是 "設計者思維"...高下立判.

乙個好的 "設計者" 肯定也是 "好的執行者", 不然無法落地, 白忙一場.

乙個好的 "執行者" 不一定是 "好的設計者", 眼界層次不夠, 越忙越亂.

第七節 指標

go語言有指標這一概念。直接上 func pointtest 定義int型別的值a,並且賦值為3 定義int型別指標變數p,並且取a的位址賦值給p 輸出a和p 控制台 3 0xc00000a0a8 3 process finished with exit code 0 a的值為3,p為a在記憶體中的...

第七節課 高階函式

目錄 1.函式結構 2.引數列表 3.裝飾器 4.作用域 一.函式結構 def 函式名 引數列表 函式體 return 返回值 不呼叫不執行 二.引數列表 1.必須引數 呼叫時必須傳值,2.預設引數 呼叫時可以不傳值。如 def test a,b 2 其中b為預設引數,不傳值時預設為2。3.不定長引...

Python 第七節 第五課

toc 隨著程式設計面臨的問題越來越複雜,程式語言本身也在進化,從主要處理簡單資料開始,隨著資料變多進化 陣列 資料型別變複雜,進化出了 結構體 處理資料的方式和邏輯變複雜,進化出了 物件 像 30,40,50.4 這些數字,可以看做是簡單資料.最初的計算機程式設計,都是像這樣的數字.將同型別的資料...