day17 物件導向1

2021-10-25 02:24:37 字數 2529 閱讀 8428

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

2、物件 - 類的例項(彭于晏是物件)

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

語法:

class 類名: # 類名規範:駝峰式命名並且首字母大寫

類的說明文件

類的內容

類的內容: 方法(物件方法,類方法,靜態方法)和 屬性(類屬性,物件屬性)

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

屬性:類中儲存資料的變數,對類的屬性進行描述

4、定義物件 - 類名()- 一般用乙個變數來儲存 -變數名 = 類名()

5、物件方法

物件方法是類的內容,是定義在類中的函式

怎麼定義:直接定義在類中的函式

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

特點:自帶引數self,用物件呼叫方法的時候引數self不傳參,系統會自動將當前物件傳給self,(self就是物件,就是那個用來儲存類名()的變數,就是變數)

重點self的理解:self指向當前'物件.方法名'呼叫的 物件,也是**變數 = 類名()**,就是這裡的變數名

6、建構函式(方法)

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

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

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

a. 呼叫__new__方法建立物件

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

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

__init__方法:

1、魔法方法:類中方法名用兩個下滑線開頭,和兩個下劃線結尾的方法就叫魔法方法,魔法方法不需要程式設計師主動呼叫,系統會在特定情況下自動去呼叫

__init__

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

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

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

7、屬性

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

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

物件屬性

class

person

: num =

61# num就是類屬性

a ='abc'

def__init__

(self, n ,g=

'男'):

self.name = n # name 就是物件屬性

self.age =

0#age 就是物件屬性

self.gender = g #gender 就是物件屬性

#使用類屬性

print

(person.num,person.a)

# 在外面使用類屬性 #61 abc

#使用物件屬性

p1 = person(

'小路'

,'女'

)print(p1.name,p1.age,p1.gender)

# 小路 0 女

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

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

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

class

point:

def __init__(self,x1=

0,y1=

0): self.x = x1

self.y = y1

defprint_info

(self)

:# 直接建立方法,根據不同的物件,就可以列印不同的座標點,直接使用方法,不用,在外面列印,每一次座標不同都有寫一次

print

(f'x:,y:'

)def

distance

(self,other)

:return

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

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

)**0.5# 求兩點間的距離

p1 = piont(8,

9)print

(f'x:,y:'

)# 在外面列印的話,每次多要列印不同的點

p2 = piont(

)print

(p2.distance(p1)

)# self此時就是現在的p2物件,p2物件呼叫distance方法,傳入預設self自己本身和p1座標點,就可以求p2的座標到p1的座標之間的距離了

day17物件導向

1.面向過程程式設計 一遇到問題馬上想到的是怎麼用演算法或者步驟 邏輯 直接解決問題 2.函式式程式設計 一遇到問題馬上想到有沒有乙個函式具有解決這個問題的功能,如果有直接拿過來用,沒有就自己定義乙個 3.物件導向程式設計 遇到問題馬上想到有沒有乙個物件具有解決這個問題的能力,如果有直接拿過來用,沒...

day17 物件導向作業 1

定義乙個矩形類,擁有屬性 長 寬 擁有方法 求周長 求面積 class rectangle def init self,long,width self.long long self.width width def perimeter self return self.long self.width ...

Day17物件導向作業

定義乙個矩形類,擁有屬性 長 寬 擁有方法 求周長 求面積 class rectangle def init self,length,width self.length length self.width width defperimeter self return self.length self...