91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python面向對象封裝操作案例詳解

發布時間:2020-10-12 23:28:46 來源:腳本之家 閱讀:179 作者:小飛俠v科比 欄目:開發技術

本文實例講述了Python面向對象封裝操作。分享給大家供大家參考,具體如下:

目標

封裝
小明愛跑步
存放家具

01. 封裝

封裝 是面向對象編程的一大特點
面向對象編程的 第一步 —— 將 屬性 和 方法 封裝 到一個抽象的 類 中
外界 使用 類 創建 對象,然后 讓對象調用方法
對象方法的細節 都被 封裝 在 類的內部

02. 小明愛跑步

需求

小明 體重 75.0 公斤
小明每次 跑步 會減肥 0.5 公斤
小明每次 吃東西 體重增加 1 公斤
Python面向對象封裝操作案例詳解
提示:在 對象的方法內部,是可以 直接訪問對象的屬性 的!

代碼實現:

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 小明愛跑步擴展 —— 小美也愛跑步

需求

小明 和 小美 都愛跑步
小明 體重 75.0 公斤
小美 體重 45.0 公斤
每次 跑步 都會減少 0.5 公斤
每次 吃東西 都會增加 1 公斤
Python面向對象封裝操作案例詳解
提示

在 對象的方法內部,是可以 直接訪問對象的屬性 的
同一個類 創建的 多個對象 之間,屬性 互不干擾!
Python面向對象封裝操作案例詳解

03. 擺放家具

需求

房子(House) 有 戶型、總面積 和 家具名稱列表
新房子沒有任何的家具
家具(HouseItem) 有 名字 和 占地面積,其中
席夢思(bed) 占地 4 平米
衣柜(chest) 占地 2 平米
餐桌(table) 占地 1.5 平米
將以上三件 家具 添加 到 房子 中
打印房子時,要求輸出:戶型、總面積、剩余面積、家具名稱列表
Python面向對象封裝操作案例詳解
剩余面積

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

答案 —— 家具類

家具簡單
房子要使用到家具,被使用的類,通常應該先開發

3.1 創建家具

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. 創建家具
bed = HouseItem("席夢思", 4)
chest = HouseItem("衣柜", 2)
table = HouseItem("餐桌", 1.5)

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

小結

創建了一個 家具類,使用到 initstr 兩個內置方法
使用 家具類 創建了 三個家具對象,并且 輸出家具信息

3.2 創建房間

class House:

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

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

  def __str__(self):

    # Python 能夠自動的將一對括號內部的代碼連接在一起
    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. 創建房子對象
my_home = House("兩室一廳", 60)

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

print(my_home)

小結

創建了一個 房子類,使用到 initstr 兩個內置方法
準備了一個 add_item 方法 準備添加家具
使用 房子類 創建了 一個房子對象
讓 房子對象 調用了三次 add_item 方法,將 三件家具 以實參傳遞到 add_item 內部

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 小結

主程序只負責創建 房子 對象和 家具 對象
讓 房子 對象調用 add_item 方法 將家具添加到房子中
面積計算、剩余面積、家具列表 等處理都被 封裝 到 房子類的內部

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python面向對象程序設計入門與進階教程》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結》及《Python入門與進階經典教程》

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临城县| 手游| 叙永县| 洞头县| 瑞安市| 西城区| 茶陵县| 南靖县| 谢通门县| 郑州市| 西畴县| 怀远县| 五常市| 孝昌县| 新源县| 嘉兴市| 陆良县| 资讯| 栾城县| 巢湖市| 绥宁县| 花垣县| 永州市| 河池市| 建瓯市| 长岭县| 湛江市| 枞阳县| 哈密市| 松滋市| 巨野县| 饶阳县| 和硕县| 雷州市| 漾濞| 德江县| 浦城县| 大宁县| 隆子县| 闵行区| 金沙县|