一、面向?qū)ο蠡靖拍?/h2>
- 世界上有很多人和事物,每一個都可以看做一個對象,而每個對象都有自己的屬性和行為,對象與對象之間通過方法來交互。
- 面向?qū)ο笫且环N以“對象”為中心的編程思想,把要解決的問題分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描敘某個對象在整個解決問題的步驟中的屬性和行為。
- 關(guān)注焦點----誰來做
二、類和對象
- 類是模板,對象 是根據(jù) 類 這個模板創(chuàng)建出來的,應(yīng)該 先有類,再有對象
- 類 只有一個,而 對象 可以有很多個,不同的對象 之間 屬性 可能會各不相同
- 類 中定義了什么 屬性和方法,對象 中就有什么屬性和方法,不可能多,也不可能少
注意:在程序開發(fā)中,要設(shè)計一個類,通常需要滿足一下三個要素:
1.類名 這類事物的名字,需要滿足大駝峰命名法
2.屬性 這類事物具有什么樣的特征
3.方法 這類事物具有什么樣的行為
三、語法結(jié)構(gòu):
# 創(chuàng)建類
class 類名:
def 方法1(self, 參數(shù)列表):
pass # pass是占位符
def 方法2(self, 參數(shù)列表):
pass
# 創(chuàng)建對象
對象引用 = 類名(參數(shù)列表)
三、self 參數(shù):
- 在 類的外部,通過
變量名訪問對象的 屬性和方法 - 在 類封裝的方法中,通過
self訪問對象的 屬性和方法
self圖例.png - self使用示例:
class BearToy:
def speak(self):
print("你好我是" + self.color + "色的泰迪~")
bear01 = BearToy()
bear01.color = "red" # 給熊添加顏色屬性并賦值
bear01.speak()
bear02 = BearToy()
bear02.color = "yellow" # 給熊添加顏色屬性并賦值
bear02.speak()
四、__init__初始化方法:
-
__init__()方法在創(chuàng)建對象時會被自動調(diào)用 -
__init__()是專門用來定義一個類 具有哪些屬性的方法 -
__init__()使用示例:
class BearToy: # 定義類BearToy
def __init__(self, color):
print("對象初始化")
self.color = color
def speak():
print("顏色: " + self.color + ",大?。? + self.size)
if __name__ == "__main__":
tidy01 = BearToy("red", "big")
tidy01.speak()
tidy02 = BearToy("yellow", "small")
tidy02.speak()
五、函數(shù)編程練習(xí):
需求:
- 創(chuàng)建游戲角色類
- 游戲人物角色擁有名字、武器等屬性
- 游戲人物具有攻擊的方法
- 武器通過武器類實現(xiàn)
class Role: #定義類Role【擁有相同屬性和方法的對象的集合】
def __init__(self, name, weapon): #__init__() 可以指定每一個對象獨有的屬性
self.name = name #self 為實例本身的名稱
self.weapon = weapon #self 為實例本身的名稱
#類方法,即類中定義的函數(shù),可以由對象去調(diào)用
def attack(self, target): #self 為實例本身的名稱
print('我是%s, 正在攻擊%s' % (self.name, target))
if __name__ == '__main__':
lb = Role('呂布', '方天畫戟') #根據(jù)Role類創(chuàng)建一個具體的對象lb
print(lb.name, lb.weapon) #打印對象lb的名字和武器
lb.attack('張飛') #讓對象調(diào)用類方法attack()
