都看了對象了,不來看看怎麼應用嗎???
需求主線:
需求涉及一個事物:地瓜
涉及一個類:地瓜類
__init__:()
)__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 = '烤糊了'
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,擁有的家具有['雙人床', '沙發']