python面向对象编程: 搬家具案例

完整代码

# 搬家具
# 需求:将小于房子剩余面积的家具摆放到房子中
# 定义类
# 先定义家具类
class Furniture():
    def __init__(self,name,area):
        # 家具名字
        self.name = name 
        # 家具占地面积
        self.area = area 



# 定义房子类
class House():
    def __init__(self,address,area):
        self.address = address
        self.area = area 
        self.free_area = area 
        self.furnitue = []

    def __str__(self):
        return '房子的地理位置是%s,房屋的面积是%s,剩余面积%s,家具有%s'%(self.address,self.area,self.free_area,self.furnitue)

    def add_furniture(self,item):
        # 容纳家具
        # 如果家具占地面积小于剩余面积可以搬入,家具列表添加家具名字,房屋剩余面积更新,否则,无法容纳
        if item.area <= self.free_area:
            self.furnitue.append(item.name)
            self.free_area -= item.area
        else:
            print("面积不足,容纳不下")

进行代码测试

bed = Furniture('床',6)
sofa = Furniture('沙发',10)
ballchang = Furniture('篮球场',2000)

home1 = House('北京',1000)
print(home1)  #房子的地理位置是北京,房屋的面积是1000,剩余面积1000,家具有[]
home1.add_furniture(bed)
print(home1)  #房子的地理位置是北京,房屋的面积是1000,剩余面积994,家具有['床']
home1.add_furniture(sofa)
print(home1)  #房子的地理位置是北京,房屋的面积是1000,剩余面积984,家具有['床', '沙发']
home1.add_furniture(ballchang)
print(home1)  #面积不足,容纳不下
# 房子的地理位置是北京,房屋的面积是1000,剩余面积984,家具有['床', '沙发']
原文地址:https://www.cnblogs.com/faberbeta/p/13858157.html