python_进阶_09


摆放家具

class HouseItem:
    def __init__(self,name,area):
        self.name = name
        self.area = area

    def __str__(self):
        return"[%s]占地%.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):
        # 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)
        # 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

# 创建家具
bed = HouseItem("席梦思",4)
chest = HouseItem("衣柜",2)
table = HouseItem("餐桌",1.5)
print(bed)
print(chest)
print(table)

# 创建房子对象
my_home = House("两室一厅",60)
my_home.add_item(bed)
my_home.add_item(chest)
my_home.add_item(table)
print(my_home)

输出为


文章作者: 张忠楠
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 张忠楠 !
评论
 上一篇
python_进阶_10 python_进阶_10
士兵突击 ​ 在定义属性时,如果不知道设置什么初始值,可以设置为None ​ 在python中针对None比较时, 建议使用is判断 clas
2020-04-26
下一篇 
python_进阶_08 python_进阶_08
小明爱跑步 class Person: def __init__(self,name,weight): # self.属性 = 形参 self.name = name self.w
2020-04-25
  目录