python學習day14(物件導向,類和物件)

2021-10-08 06:07:34 字數 2845 閱讀 6682

我們之前的學習都叫做面向過程的

面向過程和物件導向是兩種不同的程式設計方式

對比面向過程的特點,可以更好地 了解什麼是物件導向

則麼做?

把完成某乙個需求的所有步驟從頭到尾逐步實現

根據開發複雜,**會變得很複雜

最後完成**,就是順序地呼叫不同的函式

特點:注重步驟與過程,不注重職責分工

如果需求複雜,**會變得很複雜

開發複雜專案,沒有固定的套路,開發難度大

物件導向——誰來做?

相比較函式,物件導向是更大的封裝,根本職責在乙個物件中封裝多個方法

1.在完成某個需求前,首先確定職責——要做的事情(方法)

2.根據職責確定不同的物件,在物件內部封裝不同的方法(多個)

3. 最後完成的**,就是順序的讓不同的物件呼叫不同的方法

特點1.注意物件和職責,不同的物件承擔不同的職責

在程式開發中,應該先有類,再有物件

類只有乙個,物件可以有很多個,但是不同的的物件屬性各不相同

類中定義了什麼屬性和方法,物件就有什麼屬相和方法,也不可能少

第一步:需求分析:考慮需要多少個類

第二步:設計乙個類需要滿足三個要素

類名起名必須遵循大駝峰命名法

每個單詞首字母大寫

單詞與單詞之間沒有下劃線 屬性

方法名詞提煉法分析整個業務流程,提出的名詞,通常就是找到的類

需求:小明今年十八歲,身高1.73 每天早晨跑完步回去吃早點

小紅今年十七歲,身高1.60,小紅不跑步,小紅喜歡吃東西

物件導向是更大的封裝,在乙個類中封裝多個方法,這樣通過這個類建立出來的物件,就可以直接呼叫這些方法

定義只包括方法的類

語法:

class 類名:

def 方法1

(self,引數列表)

:pass

def 方法1

(self,引數列表)

:pass

注意:

與之前學的函式幾乎一樣,區別在於第乙個引數必須是self

命名必須是大駝峰命名法

建立物件當乙個類定義完成以後,用這個類來建立物件,語法格式如下:

物件變數=類名()
第乙個物件導向程式需求:小貓愛吃魚,小貓愛喝水

貓類,方法:吃喝

class

cat:

defeat

(self)

:print

('小貓愛吃魚'

)def

drink

(self)

:print

('小貓愛喝水'

)tom=cat(

)tom.eat(

)tom.drink(

)

引用的概念:在python中使用類建立物件之後,tom變數中仍然記錄的是物件在記憶體中的位址

也就是tom引用了新建的貓物件

使用print輸出物件變數,預設情況下,是能夠輸出這個變數引用的物件室友哪個類建立的物件,以及在記憶體中的位址(十六進製制表示)

class

cat:

defeat

(self)

:print

('小貓愛吃魚'

)def

drink

(self)

:print

('小貓愛喝水'

案例改造——給物件增加屬性

在python中,要給物件設定屬性,但不推薦使用

物件屬性的封裝應該封裝在類的內部

只需要在類的外部**中之傑通過,設定乙個屬性即可

如何輸出新增的屬性?

class

cat:

defeat

(self)

:print

('%s愛吃魚'

%self.name)

defdrink

(self)

:print

('小貓愛喝水'

)tom=cat(

)tom.name=

"tom"

tom.eat(

)# tom愛吃魚

tom.drink(

)# 小貓愛喝水

print

(tom)

# <__main__.cat object at>

Day14 物件導向

面向過程思想 步驟清晰簡單,第一步做什麼,第二步做什麼.面對過程適合處理一些較為簡單的問題 物件導向思想 物以類聚,分類的思維模式,思考問題首先會解決問題需要哪些分類,然後對這些分類進行單獨思考。最後,才對某個分類下的細節進行面向過程的思索 物件導向適合處理複雜的問題,適合處理需要多人協作的問題!對...

Python專案 Day14 物件導向

動態新增屬性 刪除屬性 class person def init self self.age 1 p1 person p2 person p1.gender male person.nation china del p1.gender del p1.nation error nation屬於類的,...

python成長之路day14

1 什麼是裝飾器 器指的是工具 裝飾指的是為被裝飾物件新增額外的功能 大白話 定義裝飾器就是定義了乙個函式,該函式就是用來為其他函式新增額外的功能 2 為何要用裝飾器 程式的開發徐亞哦遵循乙個原則 開放封閉原則 開放 值得是對拓展功能開放 封閉 指的是對修改源 封閉 def func sdfasd ...