【Python】初学class概念引例--添加家具

房子添加家具例子

初学面向对象难免有点犯晕,希望这个引例可以帮到你。

房子内部添加家具,依据家具占地面积大小,判断能否添加该家具,能的话添加进去,房子剩余面积变小,家具名称进入家具列表,否则直接提示面积过大,无法添加。

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)

Picture:

在这里插入图片描述

发布了44 篇原创文章 · 获赞 68 · 访问量 5127

猜你喜欢

转载自blog.csdn.net/qq_25404477/article/details/101125591
今日推荐