1.物件導向的思想
面向過程程式設計最易被初學者接受,其往往用一長段**來實現指定功能,開發過程的思路
是將資料與函式按照執行的邏輯順序組織在一起,資料與函式分開考慮。
例如:菜鳥買電腦
(1)自己買
在網上查詢資料
根據自己預算和需求定電腦的型號 macbook 15 頂配 1w8
去市場找到蘋果店各種店無法甄別真假 隨便找了一家
找到業務員,業務員推薦了另外一款 配置更**格便宜,也是蘋果 系統的 1w 砍價30分鐘 付款9999 成交 回去之後發現
各種問題
(2)找大牛
找乙個靠譜的電腦高手 給錢交易
同樣的問題,不一樣的解決思路,面向過程和物件導向都是解決問題的思路。
(1)買電腦的第一種方式:
強調的是步驟、過程、每一步都是自己親自去實現的
這種解決問題的思路我們就叫做面向過程
(2)買電腦的第二種方式:
強調的是電腦高手, 電腦高手是處理這件事的主角
對我們而言,我們並不必親自實現整個步驟
只需要呼叫電腦高手就可以解決問題
這種解決問題的思路就 是物件導向
面向過程:根據業務邏輯從上到下寫**。程式設計師是執行者
物件導向:將資料與函式繫結到一起,進行封裝,對外界提供呼叫。程式設計師是指揮者
物件導向的思維解決問題的重點
1)當遇到乙個需求的時候不用自己去實現,如果自己一步步實現那就是面向過程
2)應該找乙個專門做這個事的人來做
3)物件導向是基於面向過程的
2.類與物件
物件導向程式設計的兩個非常重要的概念:類和物件
物件是物件導向程式設計的核心,在使用物件的過程中,為了將具有共同特徵和行為的一組對
象抽取定義,提出了另外乙個新的概念——類
類:
人以類聚 物以群分。
具有相似內部狀態和運動規律的實體的集合(或統稱、抽象)。
具有相同屬性和行為事物的統稱
類是抽象的,在使用的時候通常會找到這個類的乙個具體的存在,使用這個具體的存在,
這 個存在就是物件,乙個類可以找到多個物件。
物件:
某乙個具體事物的存在 ,在現實世界中可以是看得見摸得著的。
可以是直接使用的
類與物件之間的關係:
類就是建立物件的模板
類的組成:
主要考慮三個方面
類的名稱:類名
類的屬性:一組資料
類的方法:允許操作的方法(行為)
比如:人類
事物名稱(類名):人(person)
屬性:身高(height)、年齡(age)
方法(行為/功能):跑(run)、打架(fight)
類的抽取:
如何把日常生活中的事物抽象成程式中的類?
擁有相同(或者類似)屬性和行為的物件都可以抽像出乙個類
一般名詞都是類(名詞提煉法)
3.定義類
定義乙個類,格式如下:
class 類名:
方法列表
例如:定義乙個車類
# 定義類4.建立物件class car:
# 方法
def move(self):
print('車在奔跑...')
# 鳴笛
def toot(self):
print("車在鳴笛...嘟嘟..")
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):當使用print輸出物件的時候,只要自己定義了__str__(self)方法,msg = "嘿。。。我的顏色是" + self.color + "我有" + int(self.wheelnum) + "個 輪胎..."
return msg
那麼就會列印從在這個 方法中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類建立出來的乙個...