溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python面向?qū)ο蠓庋b的示例分析

發(fā)布時(shí)間:2021-08-03 12:20:18 來源:億速云 閱讀:171 作者:小新 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)Python面向?qū)ο蠓庋b的示例分析,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

封裝

封裝 是面向?qū)ο缶幊痰囊淮筇攸c(diǎn)
面向?qū)ο缶幊痰?第一步 —— 將 屬性 和 方法 封裝 到一個(gè)抽象的 類 中
外界 使用 類 創(chuàng)建 對(duì)象,然后 讓對(duì)象調(diào)用方法
對(duì)象方法的細(xì)節(jié) 都被 封裝 在 類的內(nèi)部
一個(gè)對(duì)象的 屬性 可以是 另外一個(gè)類創(chuàng)建的對(duì)象

01. 士兵突擊

需求

士兵 許三多 有一把 AK47
士兵 可以 開火
槍 能夠 發(fā)射 子彈
槍 裝填 裝填子彈 —— 增加子彈數(shù)量
Python面向?qū)ο蠓庋b的示例分析

1.1 開發(fā)槍類

shoot 方法需求

1> 判斷是否有子彈,沒有子彈無法射擊
2> 使用 print 提示射擊,并且輸出子彈數(shù)量

class Gun:

  def __init__(self, model):

    # 槍的型號(hào)
    self.model = model
    # 子彈數(shù)量
    self.bullet_count = 0

  def add_bullet(self, count):

    self.bullet_count += count

  def shoot(self):

    # 判斷是否還有子彈
    if self.bullet_count <= 0:
      print("沒有子彈了...")

      return

    # 發(fā)射一顆子彈
    self.bullet_count -= 1
    
    print("%s 發(fā)射子彈[%d]..." % (self.model, self.bullet_count))

# 創(chuàng)建槍對(duì)象
ak47 = Gun("ak47")
ak47.add_bullet(50)
ak47.shoot()

1.2 開發(fā)士兵類

假設(shè):每一個(gè)新兵 都 沒有槍

定義沒有初始值的屬性

在定義屬性時(shí),如果 不知道設(shè)置什么初始值,可以設(shè)置為 None

None 關(guān)鍵字 表示 什么都沒有
表示一個(gè) 空對(duì)象,沒有方法和屬性,是一個(gè)特殊的常量
可以將 None 賦值給任何一個(gè)變量
fire 方法需求

1> 判斷是否有槍,沒有槍沒法沖鋒
2> 喊一聲口號(hào)
3> 裝填子彈
4> 射擊

class Soldier:

  def __init__(self, name):

    # 姓名
    self.name = name
    # 槍,士兵初始沒有槍 None 關(guān)鍵字表示什么都沒有
    self.gun = None

  def fire(self):

    # 1. 判斷士兵是否有槍
    if self.gun is None:
      print("[%s] 還沒有槍..." % self.name)

      return

    # 2. 高喊口號(hào)
    print("沖啊...[%s]" % self.name)

    # 3. 讓槍裝填子彈
    self.gun.add_bullet(50)

    # 4. 讓槍發(fā)射子彈
    self.gun.shoot()

小結(jié)

創(chuàng)建了一個(gè) 士兵類,使用到 init 內(nèi)置方法
在定義屬性時(shí),如果 不知道設(shè)置什么初始值,可以設(shè)置為 None
在 封裝的 方法內(nèi)部,還可以讓 自己的 使用其他類創(chuàng)建的對(duì)象屬性 調(diào)用已經(jīng) 封裝好的方法

02. 身份運(yùn)算符

身份運(yùn)算符用于 比較 兩個(gè)對(duì)象的 內(nèi)存地址 是否一致 —— 是否是對(duì)同一個(gè)對(duì)象的引用

在 Python 中針對(duì) None 比較時(shí),建議使用 is 判斷
Python面向?qū)ο蠓庋b的示例分析
is 與 == 區(qū)別:
is 用于判斷 兩個(gè)變量 引用對(duì)象是否為同一個(gè)
== 用于判斷 引用變量的值 是否相等

>>> a = [1, 2, 3]
>>> b = [1, 2, 3]
>>> b is a 
False
>>> b == a
True

關(guān)于“Python面向?qū)ο蠓庋b的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI