python 物件導向(上)

2021-09-01 23:39:30 字數 2933 閱讀 5818

1.物件導向的思想

面向過程程式設計最易被初學者接受,其往往用一長段**來實現指定功能,開發過程的思路

是將資料與函式按照執行的邏輯順序組織在一起,資料與函式分開考慮。

例如:菜鳥買電腦

(1)自己買

在網上查詢資料

根據自己預算和需求定電腦的型號 macbook 15 頂配 1w8

去市場找到蘋果店各種店無法甄別真假 隨便找了一家

找到業務員,業務員推薦了另外一款 配置更**格便宜,也是蘋果 系統的 1w 砍價30分鐘 付款9999 成交 回去之後發現

各種問題

(2)找大牛

找乙個靠譜的電腦高手     給錢交易

同樣的問題,不一樣的解決思路,面向過程和物件導向都是解決問題的思路。

(1)買電腦的第一種方式:

強調的是步驟、過程、每一步都是自己親自去實現的

這種解決問題的思路我們就叫做面向過程

(2)買電腦的第二種方式:

強調的是電腦高手, 電腦高手是處理這件事的主角

對我們而言,我們並不必親自實現整個步驟

只需要呼叫電腦高手就可以解決問題  

這種解決問題的思路就 是物件導向

面向過程:根據業務邏輯從上到下寫**。程式設計師是執行者

物件導向:將資料與函式繫結到一起,進行封裝,對外界提供呼叫。程式設計師是指揮者

物件導向的思維解決問題的重點

1)當遇到乙個需求的時候不用自己去實現,如果自己一步步實現那就是面向過程

2)應該找乙個專門做這個事的人來做

3)物件導向是基於面向過程的

2.類與物件

物件導向程式設計的兩個非常重要的概念:類和物件

物件是物件導向程式設計的核心,在使用物件的過程中,為了將具有共同特徵和行為的一組對

象抽取定義,提出了另外乙個新的概念——

類:

人以類聚 物以群分。

具有相似內部狀態和運動規律的實體的集合(或統稱、抽象)。

具有相同屬性和行為事物的統稱

類是抽象的,在使用的時候通常會找到這個類的乙個具體的存在,使用這個具體的存在,

這 個存在就是物件,乙個類可以找到多個物件。

物件:

某乙個具體事物的存在 ,在現實世界中可以是看得見摸得著的。

可以是直接使用的

類與物件之間的關係:

類就是建立物件的模板

類的組成

主要考慮三個方面

類的名稱:類名

類的屬性:一組資料

類的方法:允許操作的方法(行為)

比如:人類

事物名稱(類名):人(person)

屬性:身高(height)、年齡(age)

方法(行為/功能):跑(run)、打架(fight)

類的抽取:

如何把日常生活中的事物抽象成程式中的類?

擁有相同(或者類似)屬性和行為的物件都可以抽像出乙個類

一般名詞都是類(名詞提煉法)

3.定義類

定義乙個類,格式如下: 

class 類名:

方法列表 

例如:定義乙個車類 

# 定義類

class car:

# 方法

def move(self):

print('車在奔跑...')

# 鳴笛

def toot(self):

print("車在鳴笛...嘟嘟..")

4.建立物件

python中,可以根據已經定義的類去建立出乙個個物件

建立物件的格式為: 

物件名 = 類名() 

5.__init__()函式

通過__init()__函式為物件初始化屬性值 

對物件的屬性進行賦值的行為稱之為針對性初始化。

__init__(self)方法,在建立乙個物件時預設被呼叫,不需要手動呼叫

__init__(self)中,預設有1個引數名字為self,如果在建立物件時傳遞了2個實參, 那麼__init__(self)中出了self作為乙個形參外還需要

2個形參,例如__init__(self,x,y)

__init__(self)中的self引數,不需要開發者傳遞,python直譯器會自動把當前的對 象引用傳遞進去

6.__str()__函式

當我們通過print()函式將物件進行列印時,列印的是該物件的型別和位址。

如果想列印物件時,出來的是物件的一些屬性值,怎麼辦呢?

def __str__(self):

msg = "嘿。。。我的顏色是" + self.color + "我有" + int(self.wheelnum) + "個 輪胎..."

return msg 

當使用print輸出物件的時候,只要自己定義了__str__(self)方法,

那麼就會列印從在這個 方法中return的資料

7.self關鍵字

所謂的self,可以理解為自己 可以把self當做c++中類裡面的this指標一樣理解,就是物件自身的意思 某個物件呼叫其方法時,python解

釋器會把這個物件作為第乙個引數傳遞給self,所以開發 者只需要傳遞後面的引數即可

python物件導向上

我們目前學習的都是python的內建物件,但是內建物件並不都能滿足我們的需求,所以我們在開發中經常要自定義一些物件 類簡單理解它就是相當於乙個圖紙,在程式彙總我們需要根據類來建立物件。類就是物件的圖紙 我們也稱物件是類的例項 instance 可呼叫isinstan 例項物件,類名 判斷是否為該類 ...

python物件導向上

面向過程程式設計 窮人的思想 一遇到問題馬上想到的是怎麼寫 把這個功能實現 邏輯 函式式程式設計 小資的思想 一遇到問題馬上想到有沒有乙個函式已經把這個功能實現了,如果有就拿過來用,沒有就定義乙個有這個功能的函式 函式 物件導向程式設計 富豪的思想 一遇到問題馬上想到有沒有乙個類中有這個方法能夠把這...

物件導向上

self引數 特殊方法 類的建構函式 object 類名 語法 class 類名 父類 塊 class myclass pass my myclass print type my main student object at 0x0000019ae5603fa0 my是myclass類建立出來的乙個...