Python 学习:Python 封装实例1

代码来自视频

需求

需求:
1.房子(house)户型,总面积,家具列表
新房子没有任何家具
2.家具(Houseitem)名字占地面积,其中
**席梦思(bed)**占地,4平米
**衣柜(chest)**占地,2平米
餐桌(table)占地,1.5平米
3.将以上
家具
添加到房子中
4.打印房子时要求输出:户型,总面积,剩余面积,家具名称列表

创建房子类和家具类,其中家具类被房子类使用,应该先创建。
家具类创建的对象(席梦思,衣柜,餐桌),传递到房子类的添加家具方法中作为实参
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=self.free_area-item.area
        # self.free_area=self.area-item.area


# 1.创建家具对象

bed=Houseitem("席梦思",4)
chest=Houseitem("衣柜",2)
table=Houseitem("餐桌",1.5)

print(bed)
print(chest)
print(table)

# 2.创建房子对象
house_my=house("两室一厅",79)
print(house_my)

# 3.将家具添加到房子中
# 家具类创建的对象,传递到房子类的添加家具方法中作为实参
house_my.add_item(bed)
# print(house_my)
house_my.add_item(chest)
house_my.add_item(table)
print(house_my)

猜你喜欢

转载自blog.csdn.net/sinat_37960022/article/details/110404244