程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python對象應用 - 綜合應用

編輯:Python

文章目錄

  • 綜合應用
    • 烤地瓜
      • 需求
      • 步驟分析
        • 定義類
        • 定義烤地瓜方法
        • 書寫str魔法方法,用於輸出對象狀態
        • 創建對象,測試實例屬性和實例方法
        • 定義添加調料方法,並調用該實例方法
      • 代碼總匯
    • 搬家具
      • 需求
      • 步驟分析
        • 定義類
        • 創建對象並調用實例屬性和方法

綜合應用

都看了對象了,不來看看怎麼應用嗎???

烤地瓜

需求

需求主線:

  1. 被烤的時間和對應的地瓜狀態:
    0-3分鐘:生的
    3-5分鐘:半生不熟
    5-8分鐘:熟的
    超過8分鐘:烤糊了
  2. 添加的調料
    用戶可以按自己的意願添加調料

步驟分析

需求涉及一個事物:地瓜
涉及一個類:地瓜類

  • 地瓜的屬性(__init__:()
    被烤的時間
    地瓜的狀態
    添加的調料
  • 地瓜的添加調料(def 方法():)
    被烤:用戶根據意願設定每次烤地瓜的時間;判斷地瓜被烤的總時間在哪個區間,修改地瓜狀態
    添加調料:用戶更具意願設定添加的調料;將用戶添加的調料儲存
  • 顯示對象的調料存儲(__str__:()

定義類

  • 地瓜屬性
  • 定義地瓜的初始化屬性,後期根據程序推進更新實例屬性
class SweetPotato():
def __init__(self):
# 被烤的時間
self.cook_time = 0
# 地瓜的狀態
self.cook_state = '生的'
# 調料列表
self.condiments = []

定義烤地瓜方法

class SweetPotato():
......
# 烤地瓜的方法
def cook(self,time):
# 先計算地瓜整體烤過的時間
self.cook_time += time
# 用整體考過的時間判斷地瓜的狀態
if 0 <= self.cook_time and 3 < self.cook_time:
self.cook_state = '生的'
elif 3 <= self.cook_time and 5 < self.cook_time:
self.cook_state = '半生不熟'
elif 5 <= self.cook_time and 8 < self.cook_time:
self.cook_state = '熟的'
else:
self.cook_state = '烤糊了'

書寫str魔法方法,用於輸出對象狀態

class SweetPotato():
......
# 輸出對象的狀態
def __str__(self):
return '這個地瓜被烤過的時間是{},狀態是{}'.format(self.cook_time,self.cook_state)

創建對象,測試實例屬性和實例方法

# 2. 創建對象並調用實例的方法
digua1 = SweetPotato()
print(digua1) # 這個地瓜被烤過的時間是0,狀態是生的
digua1.cook(2)
print(digua1) # 這個地瓜被烤過的時間是2,狀態是生的

定義添加調料方法,並調用該實例方法

class SweetPotato():
......
def add_condiments(self,condiment):
# 用戶意願的調料追加到調料到調料列表中
self.condiments.append(condiment)
digua1 = SweetPotato()
print(digua1) # 這個地瓜被烤過的時間是0,狀態是生的,烤地瓜的調料有[]
digua1.cook(6)
print(digua1) # 這個地瓜被烤過的時間是2,狀態是熟的,烤地瓜的調料有[]
digua1.add_condiments('辣椒面,胡椒粉')
print(digua1) # 這個地瓜被烤過的時間是6,狀態是生的,烤地瓜的調料有['辣椒面,胡椒粉']
digua1.add_condiments('醬油')
print(digua1) # 這個地瓜被烤過的時間是6,狀態是生的,烤地瓜的調料有['辣椒面,胡椒粉', '醬油']

代碼總匯

# 1. 定義類:初始化屬性,被烤和添加調料的方法,顯示對象信息的str
class SweetPotato():
def __init__(self):
# 被烤的時間
self.cook_time = 0
# 地瓜的狀態
self.cook_state = '生的'
# 調料列表
self.condiments = []
# 烤地瓜的方法
def cook(self,time):
# 先計算地瓜整體烤過的時間
self.cook_time += time
# 用整體考過的時間判斷地瓜的狀態
if 0 <= self.cook_time or 3 > self.cook_time:
self.cook_state = '生的'
elif 3 <= self.cook_time and 5 > self.cook_time:
self.cook_state = '半生不熟'
elif 5 <= self.cook_time and 8 > self.cook_time:
self.cook_state = '熟的'
else:
self.cook_state = '烤糊了'
def add_condiments(self,condiment):
# 用戶意願的調料追加到調料到調料列表中
self.condiments.append(condiment)
# 輸出對象的狀態
def __str__(self):
return '這個地瓜被烤過的時間是{},狀態是{},烤地瓜的調料有{}'.format(self.cook_time,self.cook_state,self.condiments)
# 2. 創建對象並調用實例的方法
digua1 = SweetPotato()
print(digua1) # 這個地瓜被烤過的時間是0,狀態是生的,烤地瓜的調料有[]
digua1.cook(6)
print(digua1) # 這個地瓜被烤過的時間是2,狀態是熟的,烤地瓜的調料有[]
digua1.add_condiments('辣椒面,胡椒粉')
print(digua1) # 這個地瓜被烤過的時間是6,狀態是生的,烤地瓜的調料有['辣椒面,胡椒粉']
digua1.add_condiments('醬油')
print(digua1) # 這個地瓜被烤過的時間是6,狀態是生的,烤地瓜的調料有['辣椒面,胡椒粉', '醬油']

搬家具

需求

將小於房子剩余面積的家具擺放到房子中

步驟分析

需求涉及兩個事物:房子和家具,故被案例涉及兩個類:房子類和家具類。

  • 房子類
    實例屬性:房子地理位置,占地面積,剩余面積,房子內家具列表
    實例方法:容納家具
    顯示房屋信息

  • 家具類
    家具名稱
    家具占地面積

定義類

  • 家具類
# 創建家具類
class Furniture():
def __init__(self,name,area):
# 家具名字
self.name = name
# 家具面積
self.area = area
# 創建
bad = Furniture('雙人床',6)
safa = Furniture('沙發',10)
  • 房子類
class Home():
def __init__(self,address,area):
# 地理位置
self.address = address
# 房屋面積
self.area = area
# 剩余面積
self.free_area = area
# 家具列表
self.furniture = []
def __str__(self) -> str:
return f'房子位於{
self.address},占地面積為{
self.area},剩余面積{
self.free_area},擁有的家具有{
self.furniture}'
# 創建房子類
jia1 = Home('重慶',1000)
print(jia1) # 房子位於重慶,占地面積為1000,剩余面積1000,擁有的家具有[]

創建對象並調用實例屬性和方法

# 創建家具類
class Furniture():
def __init__(self,name,area):
# 家具名字
self.name = name
# 家具面積
self.area = area
class Home():
def __init__(self,address,area):
# 地理位置
self.address = address
# 房屋面積
self.area = area
# 剩余面積
self.free_area = area
# 家具列表
self.furniture = []
def __str__(self) -> str:
return f'房子位於{
self.address},占地面積為{
self.area},剩余面積{
self.free_area},擁有的家具有{
self.furniture}'
def add_furniture(self,item):
'''容納家具'''
if self.free_area >= item.area:
self.furniture.append(item.name)
# 剩余面積改變
self.free_area -= item.area
else:
print('家具太大,面積太大了')
# 創建房子類
jia1 = Home('重慶',1000)
print(jia1) # 房子位於重慶,占地面積為1000,剩余面積1000,擁有的家具有[]
# 創建家具
bad = Furniture('雙人床',6)
safa = Furniture('沙發',10)
lanqiuchang = Furniture('籃球場',10000)
jia1.add_furniture(bad)
print(jia1) # 房子位於重慶,占地面積為1000,剩余面積1000,擁有的家具有['雙人床']
jia1.add_furniture(safa)
print(jia1) # 房子位於重慶,占地面積為1000,剩余面積1000,擁有的家具有['雙人床', '沙發']
jia1.add_furniture(lanqiuchang)
print(jia1) # 房子位於重慶,占地面積為1000,剩余面積1000,擁有的家具有['雙人床', '沙發']

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved