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

Python面向?qū)ο蠓庋b操作案例詳解

 更新時間:2019年12月31日 12:02:02   作者:小飛俠v科比  
這篇文章主要介紹了Python面向?qū)ο蠓庋b操作,結(jié)合具體案例形式詳細(xì)分析了Python面向?qū)ο蟮姆庋b、擴(kuò)展等操作技巧與相關(guān)注意事項,需要的朋友可以參考下

本文實(shí)例講述了Python面向?qū)ο蠓庋b操作。分享給大家供大家參考,具體如下:

目標(biāo)

封裝
小明愛跑步
存放家具

01. 封裝

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

02. 小明愛跑步

需求

小明 體重 75.0 公斤
小明每次 跑步 會減肥 0.5 公斤
小明每次 吃東西 體重增加 1 公斤
在這里插入圖片描述
提示:在 對象的方法內(nèi)部,是可以 直接訪問對象的屬性 的!

代碼實(shí)現(xiàn):

class Person:
  """人類"""

  def __init__(self, name, weight):

    self.name = name
    self.weight = weight

  def __str__(self):

    return "我的名字叫 %s 體重 %.2f 公斤" % (self.name, self.weight)

  def run(self):
    """跑步"""

    print("%s 愛跑步,跑步鍛煉身體" % self.name)
    self.weight -= 0.5

  def eat(self):
    """吃東西"""

    print("%s 是吃貨,吃完這頓再減肥" % self.name)
    self.weight += 1


xiaoming = Person("小明", 75)

xiaoming.run()
xiaoming.eat()
xiaoming.eat()

print(xiaoming)

2.1 小明愛跑步擴(kuò)展 —— 小美也愛跑步

需求

小明 和 小美 都愛跑步
小明 體重 75.0 公斤
小美 體重 45.0 公斤
每次 跑步 都會減少 0.5 公斤
每次 吃東西 都會增加 1 公斤
在這里插入圖片描述
提示

在 對象的方法內(nèi)部,是可以 直接訪問對象的屬性 的
同一個類 創(chuàng)建的 多個對象 之間,屬性 互不干擾!
在這里插入圖片描述

03. 擺放家具

需求

房子(House) 有 戶型、總面積 和 家具名稱列表
新房子沒有任何的家具
家具(HouseItem) 有 名字 和 占地面積,其中
席夢思(bed) 占地 4 平米
衣柜(chest) 占地 2 平米
餐桌(table) 占地 1.5 平米
將以上三件 家具 添加 到 房子 中
打印房子時,要求輸出:戶型、總面積、剩余面積、家具名稱列表
在這里插入圖片描述
剩余面積

在創(chuàng)建房子對象時,定義一個 剩余面積的屬性,初始值和總面積相等
當(dāng)調(diào)用 add_item 方法,向房間 添加家具 時,讓 剩余面積 -= 家具面積
思考:應(yīng)該先開發(fā)哪一個類?

答案 —— 家具類

家具簡單
房子要使用到家具,被使用的類,通常應(yīng)該先開發(fā)

3.1 創(chuàng)建家具

class HouseItem:

  def __init__(self, name, area):
    """

    :param name: 家具名稱
    :param area: 占地面積
    """
    self.name = name
    self.area = area

  def __str__(self):
    return "[%s] 占地面積 %.2f" % (self.name, self.area)


# 1. 創(chuàng)建家具
bed = HouseItem("席夢思", 4)
chest = HouseItem("衣柜", 2)
table = HouseItem("餐桌", 1.5)

print(bed)
print(chest)
print(table)

小結(jié)

創(chuàng)建了一個 家具類,使用到 initstr 兩個內(nèi)置方法
使用 家具類 創(chuàng)建了 三個家具對象,并且 輸出家具信息

3.2 創(chuàng)建房間

class House:

  def __init__(self, house_type, area):
    """

    :param house_type: 戶型
    :param area: 總面積
    """
    self.house_type = house_type
    self.area = area
    
    # 剩余面積默認(rèn)和總面積一致
    self.free_area = area
    # 默認(rèn)沒有任何的家具
    self.item_list = []

  def __str__(self):

    # Python 能夠自動的將一對括號內(nèi)部的代碼連接在一起
    return ("戶型:%s\n總面積:%.2f[剩余:%.2f]\n家具:%s"
        % (self.house_type, self.area,
          self.free_area, self.item_list))

  def add_item(self, item):

    print("要添加 %s" % item)

...

# 2. 創(chuàng)建房子對象
my_home = House("兩室一廳", 60)

my_home.add_item(bed)
my_home.add_item(chest)
my_home.add_item(table)

print(my_home)

小結(jié)

創(chuàng)建了一個 房子類,使用到 initstr 兩個內(nèi)置方法
準(zhǔn)備了一個 add_item 方法 準(zhǔn)備添加家具
使用 房子類 創(chuàng)建了 一個房子對象
讓 房子對象 調(diào)用了三次 add_item 方法,將 三件家具 以實(shí)參傳遞到 add_item 內(nèi)部

3.3 添加家具

需求

1> 判斷 家具的面積 是否 超過剩余面積,如果超過,提示不能添加這件家具
2> 將 家具的名稱 追加到 家具名稱列表 中
3> 用 房子的剩余面積 - 家具面積

  def add_item(self, item):

    print("要添加 %s" % item)
    # 1. 判斷家具面積是否大于剩余面積
    if item.area > self.free_area:
      print("%s 的面積太大,不能添加到房子中" % item.name)

      return

    # 2. 將家具的名稱追加到名稱列表中
    self.item_list.append(item.name)

    # 3. 計算剩余面積
    self.free_area -= item.area

3.4 小結(jié)

主程序只負(fù)責(zé)創(chuàng)建 房子 對象和 家具 對象
讓 房子 對象調(diào)用 add_item 方法 將家具添加到房子中
面積計算、剩余面積、家具列表 等處理都被 封裝 到 房子類的內(nèi)部

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python面向?qū)ο蟪绦蛟O(shè)計入門與進(jìn)階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門與進(jìn)階經(jīng)典教程

希望本文所述對大家Python程序設(shè)計有所幫助。

相關(guān)文章

  • python3實(shí)現(xiàn)ftp服務(wù)功能(服務(wù)端 For Linux)

    python3實(shí)現(xiàn)ftp服務(wù)功能(服務(wù)端 For Linux)

    這篇文章主要介紹了python3實(shí)現(xiàn)ftp服務(wù)功能,服務(wù)端 For Linux,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • pandas實(shí)現(xiàn)數(shù)據(jù)讀取&清洗&分析的項目實(shí)踐

    pandas實(shí)現(xiàn)數(shù)據(jù)讀取&清洗&分析的項目實(shí)踐

    近期因工作需要,需對幾十萬條商品和訂單數(shù)據(jù)進(jìn)行初步的數(shù)據(jù)分析,本文主要pandas實(shí)現(xiàn)數(shù)據(jù)讀取&清洗&分析的項目實(shí)踐,具有一定的參考價值,感興趣的可以了解一下
    2022-05-05
  • PaddleOCR 識別表情包文字示例詳解

    PaddleOCR 識別表情包文字示例詳解

    這篇文章主要為大家介紹了PaddleOCR 識別表情包文字示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • pyqt5 設(shè)置窗口圓角及陰影的操作

    pyqt5 設(shè)置窗口圓角及陰影的操作

    這篇文章主要介紹了pyqt5 設(shè)置窗口圓角及陰影的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 淺談Python3中print函數(shù)的換行

    淺談Python3中print函數(shù)的換行

    這篇文章主要介紹了淺談Python3中print函數(shù)的換行,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Python中函數(shù)的基本定義與調(diào)用及內(nèi)置函數(shù)詳解

    Python中函數(shù)的基本定義與調(diào)用及內(nèi)置函數(shù)詳解

    這篇文章主要給大家介紹了關(guān)于Python中函數(shù)的基本定義與調(diào)用及內(nèi)置函數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • python3常用的數(shù)據(jù)清洗方法(小結(jié))

    python3常用的數(shù)據(jù)清洗方法(小結(jié))

    這篇文章主要介紹了python3常用的數(shù)據(jù)清洗方法(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • python學(xué)習(xí)之subprocess模塊詳解

    python學(xué)習(xí)之subprocess模塊詳解

    這篇文章主要介紹了python學(xué)習(xí)之subprocess模塊的相關(guān)資料,該模塊用于創(chuàng)建子進(jìn)程并與其進(jìn)行交互,它提供了多個函數(shù)和類來執(zhí)行操作系統(tǒng)命令、獲取命令輸出以及管理子進(jìn)程的生命周期,需要的朋友可以參考下
    2024-12-12
  • python 從文件夾抽取圖片另存的方法

    python 從文件夾抽取圖片另存的方法

    今天小編就為大家分享一篇python 從文件夾抽取圖片另存的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python微信操控itchat的方法

    Python微信操控itchat的方法

    itchat是一個開源的微信個人號接口,使用python調(diào)用微信從未如此簡單。這篇文章主要介紹了Python微信操控itchat的方法,需要的朋友可以參考下
    2019-05-05

最新評論

台北县| 永寿县| 灵璧县| 阿坝| 平顶山市| 彭山县| 庆城县| 夏津县| 邹平县| 邓州市| 黄骅市| 万州区| 澳门| 教育| 军事| 沁阳市| 新野县| 公安县| 博爱县| 北辰区| 怀化市| 蒲江县| 浦江县| 剑川县| 达孜县| 甘泉县| 忻州市| 云龙县| 沙坪坝区| 叶城县| 宁安市| 时尚| 资中县| 突泉县| 桐庐县| 荣昌县| 乐昌市| 柯坪县| 宁陵县| 萨嘎县| 尼玛县|