天天看点

类实例:搬家具

# 有房子家具,把家具放到房子里面去
# 类:房子 初始化:家里地理位置,使用面积,房间剩余面积,家具列表[家具1,家具2]
# 类:家具初始化:名字,占地面积

class Home(object):
    def __init__(self, address, area):
        self.address = address
        self.area = area
        self.free_area = area# 没有放家具,剩余面积=使用面积
        self.furnitures = []

    def add_furniture(self,fur):  # fur是形参 -- 存一个家具
        # 最终面积 = 剩余面积 - 这次的家具面积
        # 看最终面积 >= 家具的area
        self.result_area = self.free_area - fur.area
        if self.result_area >= 0:
            # 可以搬 -- 把家具的名字append到列表 jiaju.name
            self.furnitures.append(fur.name)
            # 计算现在剩下的面积:放上了这个家具之后的面积
            self.free_area -= fur.area
        else:
            print('面积不足~~')


    def __str__(self):
        return '家的地址是%s,使用面积是%s,剩余面积是%s,家具有%s' % (self.address, self.area, self.free_area, self.furnitures)

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

    def __str__(self):
        return '家具名字是%s,占地面积是%s' % (self.name, self.area)


jia1 = Home('盘古大观', 300)
print(jia1)
bed1 = Furniture('双人床', 4)
print(bed1)
youyongchi = Furniture('游泳池',200)
jia1.add_furniture(youyongchi)
print(jia1)
jia1.add_furniture(bed1)
print(jia1)