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...