最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python面向?qū)ο蠓庋b案例基礎(chǔ)教程

 更新時(shí)間:2023年06月08日 12:11:05   作者:村長(zhǎng)  
這篇文章主要為大家介紹了Python面向?qū)ο蠓庋b案例基礎(chǔ)教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

封裝

  • 封裝是面向?qū)ο缶幊痰囊淮筇攸c(diǎn)
  • 面向?qū)ο缶幊痰牡谝徊剑簩傩院头椒ǚ盅b到一個(gè)抽象的類中
  • 外界使用類創(chuàng)建對(duì)象,然后讓對(duì)象調(diào)用方法
  • 對(duì)象方法的細(xì)節(jié)都被封裝在累的內(nèi)部
    注意:一個(gè)對(duì)象的屬性可以是另外一個(gè)類創(chuàng)建的對(duì)象

一、士兵突擊案例需求分析

需求:

  • 士兵張小嘎 有一把 Ak47
  • 士兵 可以 開火
  • qiang 能夠 發(fā)射子彈
  • qiang 需要 裝填子彈----增加子彈數(shù)量

根據(jù)需求,劃分類,共劃分兩個(gè)類,一個(gè)是士兵類,一個(gè)是qiang類,由于創(chuàng)建士兵類中用到qiang,所以在創(chuàng)建類的時(shí)候先創(chuàng)建qiang類。

二、創(chuàng)建qiang類

根據(jù)上面的類圖表格來(lái)創(chuàng)建qiang類。
model是qiang的型號(hào),bullet_count是子彈的數(shù)量,add_bullet(self, count)裝填子彈方法,Shoot(self)是發(fā)射子彈方法。
代碼

class Gun():
    def __init__(self, model):
        # 1. qiang的型號(hào)
        self.model = model
        # 2. 子彈的數(shù)量,初始值為0
        self.bullet_count = 0
    def add_bullet(self, count):
        self.bullet_count += count
    def shoot(self):
        # 1. 判斷子彈數(shù)量
        if self.bullet_count <= 0:
            print("[%s] 沒(méi)有子彈了" % self.model)
            return
        # 2. 發(fā)射子彈, -1
        self.bullet_count -= 1
        # 提示發(fā)射信息
        print("[%s] 突突突。。。[%d]" % (self.model, self.bullet_count))
# 1. 創(chuàng)建qiang對(duì)象
ak47 = Gun("Ak47")
# 2. 調(diào)用方法
ak47.add_bullet(50)
ak47.shoot()

執(zhí)行結(jié)果:

三、創(chuàng)建士兵類

假設(shè):每一個(gè)士兵都沒(méi)有qiang
定義沒(méi)有初始值的屬性:在定義屬性時(shí),如果不知道設(shè)置什么初始值,可以設(shè)置為None

  • None關(guān)鍵字表示 什么都沒(méi)有
  • 表示一個(gè)空對(duì)象,沒(méi)有方法和屬性,是一個(gè)特殊的常量
  • 可以將NNone賦值給任何一個(gè)變量
    fire方法需求:
  • 判斷是否有qiang,沒(méi)有槍沒(méi)辦法沖鋒
  • 喊一聲口號(hào)
  • 裝填子彈
  • 射擊

代碼:

class Gun():
    def __init__(self, model):
        # 1. qiang的型號(hào)
        self.model = model
        # 2. 子彈的數(shù)量,初始值為0
        self.bullet_count = 0
    def add_bullet(self, count):
        self.bullet_count += count
    def shoot(self):
        # 1. 判斷子彈數(shù)量
        if self.bullet_count <= 0:
            print("[%s] 沒(méi)有子彈了" % self.model)
            return
        # 2. 發(fā)射子彈, -1
        self.bullet_count -= 1
        # 提示發(fā)射信息
        print("[%s] 突突突。。。[%d]" % (self.model, self.bullet_count))
class Soldier():
    def __init__(self, name):
        # 1. 姓名
        self.name = name
        # 2. qiang = 新兵沒(méi)有槍
        self.gun = None
# 1. 創(chuàng)建qiang對(duì)象
ak47 = Gun("Ak47")
# 2. 調(diào)用方法
ak47.add_bullet(50)
ak47.shoot()
# 3. 創(chuàng)建士兵對(duì)象-張小嘎
zhang = Soldier("張小嘎")
# 用賦值語(yǔ)句,把a(bǔ)k47交給張小嘎
zhang.gun = ak47
print(zhang.gun)

執(zhí)行結(jié)果:

四、完成開火方法

代碼:

class Gun():
    def __init__(self, model):
        # 1. qiang的型號(hào)
        self.model = model
        # 2. 子彈的數(shù)量,初始值為0
        self.bullet_count = 0
    def add_bullet(self, count):
        self.bullet_count += count
    def shoot(self):
        # 1. 判斷子彈數(shù)量
        if self.bullet_count <= 0:
            print("[%s] 沒(méi)有子彈了" % self.model)
            return
        # 2. 發(fā)射子彈, -1
        self.bullet_count -= 1
        # 提示發(fā)射信息
        print("[%s] 突突突。。。[%d]" % (self.model, self.bullet_count))
class Soldier():
    def __init__(self, name):
        # 1. 姓名
        self.name = name
        # 2. qiang = 新兵沒(méi)有槍
        self.gun = None
    def fire(self):
        # 1. 判斷是否有槍
        if self.gun == None:
            print("[%s]還沒(méi)有qiang" % self.name)
            return
        # 2. 高喊沖鋒口號(hào)
        print("沖啊。。。 [%s]" % self.name)
        # 3. 裝填子彈
        self.gun.add_bullet(50)
        # 4. 發(fā)射子彈射擊
        self.gun.shoot()
# 1. 創(chuàng)建qiang對(duì)象
ak47 = Gun("Ak47")
# 2. 調(diào)用方法
# ak47.add_bullet(50)
# ak47.shoot()
# 3. 創(chuàng)建士兵對(duì)象-張小嘎
zhang = Soldier("張小嘎")
# 用賦值語(yǔ)句,把a(bǔ)k47交給張小嘎
zhang.gun = ak47
zhang.fire()
# print(zhang.gun)

執(zhí)行結(jié)果:

以上就是關(guān)于面向?qū)ο蟀咐勘粨舻姆治龊痛a演練,主要知識(shí)點(diǎn)就是一個(gè)對(duì)象的屬性可以是另外一個(gè)類創(chuàng)建的對(duì)象,以及關(guān)鍵字None的使用,更多關(guān)于Python面向?qū)ο蠓庋b的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 基于python爬取梨視頻實(shí)現(xiàn)過(guò)程解析

    基于python爬取梨視頻實(shí)現(xiàn)過(guò)程解析

    這篇文章主要介紹了基于python爬取梨視頻實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • python高效的素?cái)?shù)判斷算法

    python高效的素?cái)?shù)判斷算法

    這篇文章主要介紹了python高效的素?cái)?shù)判斷算法,研究算法的同學(xué)一定要看一下
    2021-04-04
  • Python逐行讀取文件內(nèi)容的方法總結(jié)

    Python逐行讀取文件內(nèi)容的方法總結(jié)

    在本篇文章里小編給大家整理的是關(guān)于Python四種逐行讀取文件內(nèi)容的方法,有興趣的朋友們可以學(xué)習(xí)下。
    2020-02-02
  • 利用python實(shí)現(xiàn)對(duì)excel文件進(jìn)行加密

    利用python實(shí)現(xiàn)對(duì)excel文件進(jìn)行加密

    由于文件內(nèi)容的私密性,需要對(duì)Excel文件進(jìn)行加密,保護(hù)文件以免給第三方看到,本文將以Python語(yǔ)言為例,和大家講講如何對(duì)Excel文件進(jìn)行加密,感興趣的小伙伴可以了解下
    2025-04-04
  • 一文詳解Python中哈希表的使用

    一文詳解Python中哈希表的使用

    哈希表或稱為散列表,是一種常見的、使用頻率非常高的數(shù)據(jù)存儲(chǔ)方案。本文將站在開發(fā)者的角度,帶著大家一起探究哈希的世界,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-05-05
  • OpenCV+OCR實(shí)現(xiàn)弧形文字識(shí)別的示例代碼

    OpenCV+OCR實(shí)現(xiàn)弧形文字識(shí)別的示例代碼

    本文主要介紹了OpenCV+OCR實(shí)現(xiàn)弧形文字識(shí)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-07-07
  • Python中驗(yàn)證IP地址的方法詳解

    Python中驗(yàn)證IP地址的方法詳解

    IP 代表互聯(lián)網(wǎng)協(xié)議,是分配給每臺(tái)連接到互聯(lián)網(wǎng)的計(jì)算機(jī)的唯一地址,本文將為大家簡(jiǎn)單介紹一下在 Python 中驗(yàn)證 IP 地址的相關(guān)方法,需要的小伙伴可以了解下
    2025-08-08
  • python3.5 email實(shí)現(xiàn)發(fā)送郵件功能

    python3.5 email實(shí)現(xiàn)發(fā)送郵件功能

    這篇文章主要為大家詳細(xì)介紹了python3.5 email實(shí)現(xiàn)發(fā)送郵件功能,包含txt、圖片、HTML、附件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • python訪問(wèn)sqlserver示例

    python訪問(wèn)sqlserver示例

    這篇文章主要介紹了python訪問(wèn)sqlserver示例,需要的朋友可以參考下
    2014-02-02
  • Python+OpenCV 實(shí)現(xiàn)簡(jiǎn)單的高斯濾波(推薦)

    Python+OpenCV 實(shí)現(xiàn)簡(jiǎn)單的高斯濾波(推薦)

    這篇文章主要介紹了Python+OpenCV 實(shí)現(xiàn)簡(jiǎn)單的高斯濾波,在文中需要注意的是,這里我沒(méi)有特判當(dāng)sigma = 0的時(shí)候的情況,具體實(shí)現(xiàn)過(guò)程跟隨小編一起看看吧
    2021-09-09

最新評(píng)論

阿鲁科尔沁旗| 同德县| 曲水县| 闵行区| 武冈市| 曲沃县| 宁河县| 杂多县| 盐山县| 会同县| 墨竹工卡县| 新建县| 武定县| 伊金霍洛旗| 合作市| 绥德县| 峨眉山市| 兰坪| 泸西县| 岳西县| 乳山市| 青海省| 邛崃市| 凤翔县| 怀化市| 四子王旗| 神农架林区| 西乌珠穆沁旗| 盘锦市| 吴旗县| 武宁县| 靖安县| 湖南省| 建昌县| 子长县| 湖口县| 勐海县| 正镶白旗| 武冈市| 巴林右旗| 基隆市|