房子添加家具例子
初学面向对象难免有点犯晕,希望这个引例可以帮到你。
房子内部添加家具,依据家具占地面积大小,判断能否添加该家具,能的话添加进去,房子剩余面积变小,家具名称进入家具列表,否则直接提示面积过大,无法添加。
Code:
class HouseItem:
"""创建家具类"""
def __init__(self, name, area):
self.name = name
self.area = area
def __str__(self):
return "[%s] area is %.2f" % (self.name, self.area)
class House:
"""创建房子类"""
def __init__(self, house_type, area):
self.house_type = house_type
self.area = area
self.free_area = area # 剩余面积
self.item_list = [] # 家具名称列表
def __str__(self):
return ("House type:%s\narea is %.2f[free: %.2f]\nhouseitem: %s"
% (self.house_type, self.area, self.free_area, self.item_list))
def add_item(self, item):
"""添加家具函数"""
print("Add %s" % item)
# 判断家具面积
if item.area > self.free_area:
print("%s area is too large,unable to add" % item.name)
return
# 将家具添加到列表
self.item_list.append(item.name)
# 计算剩余面积
self.free_area -= item.area
# 引用家具类(创建家具对象)
bed = HouseItem("bed", 20)
chest = HouseItem("chest", 5)
table = HouseItem("table", 100)
print(bed)
print(chest)
print(table)
# 创建房子对象
my_home = House("Two rooms and one hall", 60)
my_home.add_item(bed)
my_home.add_item(chest)
my_home.add_item(table)
print(my_home)