千峰學習第十七天 物件導向1

2021-10-25 01:59:49 字數 2956 閱讀 7350

程式設計思想

1.面向過程程式設計(窮人)

一遇到問題馬上想到的是怎麼用演算法或者步驟(邏輯)直接解決問題

2.函式式程式設計(小資)

一遇到問題馬上想到有沒有乙個函式具有解決這個問題的功能,如果有直接拿來用,沒有就自己造乙個

3.物件導向程式設計(富豪)

一遇到問題馬上有沒有乙個物件具有解決這個問題的功能,如果有直接用,沒有就建立乙個。 - 類和物件

類和物件

什麼是類、什麼是物件

類就是擁有相同功能和相同屬性的物件的集合 - 抽象的概念

物件就是類的例項 - 具體表現

人是類,小明是物件

定義類 - 用**描述清楚這個類是擁有哪些相同功能和哪些相同屬性的物件集合

1)語法

class 類名:

類的說明文件

類的內容

2)說明

class - 關鍵字;固定寫法

類名 - 程式設計師自己命名;

要求:是識別符號,不是關鍵字

規範:駝峰式命名並且首字母大寫;見名知義;不使用系統的函式名、型別名、模組名

類的說明文件 - 本質就是使用三個雙引號開頭和結尾的注釋

類的內容 - 主要包括方法(物件方法、類方法和靜態方法)和屬性(物件屬性、類屬性)

方法:本質就是定義在類中的函式,是用來對類的功能進行描述

屬性:本質就是在類中儲存資料的變數,是用來對類的屬性進行描述

定義物件

類名()

物件方法

方法就是定義在類中函式。

1)什麼是物件方法

怎麼定義:直接定義在類中

怎麼呼叫:通過'物件.方法名' 的形式來呼叫

特點是什麼:自帶引數self;用物件呼叫方法的時候引數self不需要傳參,系統會自動將當前物件傳給self

(self:誰呼叫就指向誰)

# 例子

class

dog:

defeat

(self, food=

'骨頭'):

# self = d1

print

(f'self:'

)print

(f'狗吃'

)# 建立乙個dog類物件,儲存在d1中

d1 = dog(

)print

(f'd1:'

)# 通過物件呼叫物件方法

d1.eat(

)d1.eat(

'肉')

構造方法和init方法

建構函式(方法)

函式名和類同名,專門用來建立物件的函式就是建構函式(方法)

python在定義類的時候,系統會自動建立這個類對應的建構函式

python中呼叫建構函式建立物件的時候內部會完成3個操作:

a.呼叫__new__方法建立物件

b.用建立好的物件呼叫__init__方法,對物件進行初始化操作

c.返回初始化後完成的物件

__init__方法

魔法方法:類中方法名__開頭和__結尾的方法就叫魔法方法;

魔法方法不需要程式設計師主動呼叫,系統會在特定的情況下自動去呼叫

__init__:

1)每次通過類建立物件的時候,系統都會自動呼叫這個方法;

2)建立物件的時候建構函式有沒有引數有及格看對應的init方法除了self以外有沒有額外的引數有幾個

3)如果需要給類新增init方法要保證方法名是__init__,以及方法的性質是物件方法就可以了

def person(*args, **kwargs):

物件 = 建立物件(呼叫__new__函式建立物件)

對物件進行初始化(物件.__init__(*args, **kwargs))

return 物件

屬性 - 本質就是用來儲存資料的變數

類中的屬性分為:類屬性和物件屬性兩種

1)類屬性 - 類屬性又叫類的字段

怎麼定義:直接定義在類裡面函式外面的變數就是類屬性

怎麼使用:通過'類.屬性'的形式來使用

什麼時候用:屬性值不會有因為物件不同而不一樣,這樣的屬性就可以定義成類屬性

2)物件屬性

怎麼定義:以'self.屬性名=值'的形式定義在__init__方法中

怎麼使用:以'物件.屬性'的形式來使用

什麼時候用:屬性值會有因為物件不同而不一樣,這樣的屬性就可以定義成物件屬性

例子:

# 練習:定義乙個點類,有屬性x座標、y座標,方法:以'x:?,y:?'的形式列印點的資訊

# 要求:建立點物件的時候可以給座標賦值,如果不賦值x座標和y座標都是0

# 新增方法:獲取當前點到另外乙個點的距離

class

point

:def

__init__

(self, x=

0, y=0)

: self.x = x

self.y = y

deffunc1

(self)

:print

(f'x:,y:'

)def

distance

(self, other)

:# self = p3, other = p4

d =((self.x-other.x)**2

+(self.y-other.y)**2

)**0.5print

(f'距離:'

)p3 = point(20,

10)p4 = point(10,

20)p3.func1(

)p3.distance(p4)

Python學習 第十七天

在下這廂有禮了 練習 python修改檔案時,使用w模式會將原本的檔案清空 覆蓋。可以先用讀 r 的方式開啟,寫到記憶體中,然後再用寫 w 的方式開啟。yesterday when i was young 昨日當我年少輕狂 the taste of life was sweet 生命的滋味是甜的 a...

linux學習第十七天

18.1 資料庫管理系統 資料庫是指按照某些特定結構來儲存資料資料的資料倉儲。在當今這個大資料技術迅速崛起的年代,網際網路上每天都會生成海量的資料資訊,資料庫技術也從最初只能儲存簡單的 資料的單一集中儲存模式,發展到了現如今儲存海量資料的大型分布式模式。在資訊化社會中,能夠充分有效地管理和利用各種資...

打卡第十七天

第二次了,又沒過.有時候會有一種失敗感,這幾年好像什麼都沒做好,過的好像也不是很開心。昨天兵查過成績後心情就低落起來了,尤其是聽到晨晨得知她沒過時發出的驚訝聲音 你竟然沒過?時,心情立馬跌到了谷底,回到宿舍就再也繃不住了,大哭了一場,媽媽打 詢問情況,看到女兒哭的傷心,竟也無措起來,不知如何安慰。於...