Python 入門筆記16 物件導向初步(1)

2021-10-16 12:56:35 字數 2197 閱讀 4306

物件的進化

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

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

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

python 中,一切皆物件。資料型別、函式、類等,都是物件。

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

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

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

發動車掛擋

踩油門走你

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

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

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

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

輪胎發動機

車殼座椅

擋風玻璃

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

因此,物件導向可以幫助我們從巨集觀上把握、從整體上分析整個系統。 但是,具體到 實現部分的微觀操作(就是乙個個方法),仍然需要面向過程的思路去處理。

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

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

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

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

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

隨著程式設計面臨的問題越來越複雜,程式語言本身也在進化,從主要處理簡單資料開始, 隨著資料變多進化「陣列」; 資料型別變複雜,進化出了「結構體」; 處理資料的方式和邏輯變複雜,進化出了「物件」。

簡單資料

像 30,40,50.4 等這些數字,可以看做是簡單資料。最初的計算機程式設計,都是像這樣 的數字。

陣列將同型別的資料放到一起。比如:整數陣列[20,30,40],浮點數陣列[10.2, 11.3, 12.4], 字串陣列:[「aa」,」bb」,」cc」]

結構體將不同型別的資料放到一起,是 c 語言中的資料結構。比如:

物件將不同型別的資料、方法(即函式)放到一起,就是物件。比如:

class

student

: school =

"nwu"

#類屬性

count =

0#類屬性

def__init__

(self, name, score)

: self.name = name #例項屬性

self.score = score #例項屬性

student.count = student.count +

1def

say_score

(self)

:#例項方法

print

("我的學校是:"

, student.school)

print

("我的分數是:"

, self.score)

python中的數字也是物件。比如:整數 9,就是乙個包含了加法、乘法等方法的物件。

python 物件導向 python是物件導向嗎

python是一種物件導向 解釋型計算機程式語言,由guido van rossum於1989年底發明,第乙個公開發行版發行於1991年,python 源 同樣遵循 gpl gnu general public license 協議。python語法簡潔而清晰,具有豐富和強大的類庫。但實際上面向過程...

Python基礎 16物件導向概述

1 在版本2.2 中,python社群最終統一了型別 type 和類 class 新式類具備更多高階的oop特性,扮演了乙個經典類 舊式類 超集的角色,後者是python 誕生時所創造的類物件。2 下面的示例展示了如何建立乙個類 class mynewobjecttype bases define ...

python 16 初識物件導向

面向過程 一切以事物的發展流程為核心 優點 負責的問題流程化,編寫相對簡單 缺點 可擴充套件性差 物件導向 一切以物件為中心.一切皆為物件.具體的某乙個事務就是物件 優點 可擴充套件性強 缺點 程式設計的複雜度高於面向過程 類 就是圖紙,建立物件的第一步 物件 通過類造出來的具體事物,基本格式 cl...