Python面向?qū)ο缶幊?1

一、面向?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()
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容