欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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ù)上面的類圖表格來創(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] 沒有子彈了" % 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è)士兵都沒有qiang
定義沒有初始值的屬性:在定義屬性時(shí),如果不知道設(shè)置什么初始值,可以設(shè)置為None

  • None關(guān)鍵字表示 什么都沒有
  • 表示一個(gè)空對(duì)象,沒有方法和屬性,是一個(gè)特殊的常量
  • 可以將NNone賦值給任何一個(gè)變量
    fire方法需求:
  • 判斷是否有qiang,沒有槍沒辦法沖鋒
  • 喊一聲口號(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] 沒有子彈了" % 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 = 新兵沒有槍
        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] 沒有子彈了" % 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 = 新兵沒有槍
        self.gun = None
    def fire(self):
        # 1. 判斷是否有槍
        if self.gun == None:
            print("[%s]還沒有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)文章

  • pycharm找不到conda可執(zhí)行文件怎么解決

    pycharm找不到conda可執(zhí)行文件怎么解決

    這篇文章主要給大家介紹了關(guān)于pycharm找不到conda可執(zhí)行文件怎么解決的相關(guān)資料,文中通過圖文介紹非常的詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-07-07
  • 基于Python?+?PyQt搭建可視化頁(yè)面的詳細(xì)教程

    基于Python?+?PyQt搭建可視化頁(yè)面的詳細(xì)教程

    PyQt是一個(gè)Python綁定庫(kù),它是基于Qt庫(kù)的,PyQt提供了一整套豐富的組件,包括窗口、按鈕、菜單、列表框等,以及事件處理、布局管理、網(wǎng)絡(luò)通信等多種功能,本文介紹了基于Python?+?PyQt搭建可視化頁(yè)面的詳細(xì)教程,需要的朋友可以參考下
    2024-07-07
  • python中rasterio的安裝和使用

    python中rasterio的安裝和使用

    本文主要介紹了python中rasterio的安裝和使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • Python設(shè)計(jì)模式之職責(zé)鏈模式原理與用法實(shí)例分析

    Python設(shè)計(jì)模式之職責(zé)鏈模式原理與用法實(shí)例分析

    這篇文章主要介紹了Python設(shè)計(jì)模式之職責(zé)鏈模式,結(jié)合具體實(shí)例形式分析了Python責(zé)任鏈模式的概念、原理、定義與使用方法,需要的朋友可以參考下
    2019-01-01
  • 超詳細(xì)Python文件操作命令知識(shí)

    超詳細(xì)Python文件操作命令知識(shí)

    最近在寫的程序頻繁地與文件操作打交道,所以想著給大家總結(jié)下,這篇文章主要給大家介紹了關(guān)于Python文件操作命令的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • Python實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu)與算法之雙端隊(duì)列詳解

    Python實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu)與算法之雙端隊(duì)列詳解

    這篇文章主要介紹了Python實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu)與算法之雙端隊(duì)列,詳細(xì)講述了雙端隊(duì)列的概念、功能、定義及Python實(shí)現(xiàn)與使用雙端隊(duì)列的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • Python爬蟲庫(kù)requests獲取響應(yīng)內(nèi)容、響應(yīng)狀態(tài)碼、響應(yīng)頭

    Python爬蟲庫(kù)requests獲取響應(yīng)內(nèi)容、響應(yīng)狀態(tài)碼、響應(yīng)頭

    上一節(jié)我們給大家介紹了Python爬蟲庫(kù)requests的發(fā)送請(qǐng)求傳參等使用方法,今天為大家介紹下requests獲取響應(yīng)內(nèi)容、響應(yīng)狀態(tài)碼、響應(yīng)頭等相關(guān)信息
    2020-01-01
  • python 將numpy維度不同的數(shù)組相加相乘操作

    python 將numpy維度不同的數(shù)組相加相乘操作

    這篇文章主要介紹了python 將numpy維度不同的數(shù)組相加相乘操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Matplotlib控制坐標(biāo)軸刻度間距與標(biāo)簽實(shí)例代碼

    Matplotlib控制坐標(biāo)軸刻度間距與標(biāo)簽實(shí)例代碼

    在matplotlib中,記號(hào)是圖形兩個(gè)軸上的小標(biāo)記,到目前為止,我們讓matplotlib處理軸圖例上記號(hào)的位置,下面這篇文章主要給大家介紹了關(guān)于Matplotlib控制坐標(biāo)軸刻度間距與標(biāo)簽的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • Python抽象類的新寫法

    Python抽象類的新寫法

    這篇文章主要介紹了Python抽象類的新寫法,本文講解了老版本中的hack方式實(shí)現(xiàn)抽象類,以及2.7以后使用abstractmethod模塊寫抽象類的方法,需要的朋友可以參考下
    2015-06-06

最新評(píng)論