18 面向对象2 房间放入家具

Posted abel2020

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了18 面向对象2 房间放入家具相关的知识,希望对你有一定的参考价值。

"""房间放入家具

定义Fur类:
    包含两个属性 ,name 和size
    初始化name和size
    定义__str__方法, 修改print 对象的结果

定义House类:
    包含四个属性 ,name 和size,area(剩余空间),fur_list(家具列表)
    初始化name和size
    定义__str__方法, 修改print 对象的结果
    定义添加家具方法, 修改剩余空间,和家具列表

创建bed,desk,table 三个Fur对象
创建house 对象
添加家具对象
打印house对象
"""

"""输出结果
这个家具是 bed ,占用面积 10 平方米  这个家具是 desk ,占用面积 5 平方米  这个家具是 table ,占用面积 8 平方米 
这个房子是 bedroom ,总面积为 20 平方米
 剩余空间 10 
 包含家具 [‘bed‘] 
这个房子是 bedroom ,总面积为 20 平方米
 剩余空间 5 
 包含家具 [‘bed‘, ‘desk‘] 
家具太大了
这个房子是 bedroom ,总面积为 20 平方米
 剩余空间 5 
 包含家具 [‘bed‘, ‘desk‘] 
"""

class Fur:  # 驼峰命名法

    def __init__(self, name, size):  # __init__ 是内置的初始化方法
        # self.属性=形参 ,   都叫name 但一个是形参,一个属性,可以相同不会冲突
        self.name = name    #家具名字
        self.size = size    #家具占地面积

    def __str__(self):      #内置的类说明方法
        return "这个家具是 %s ,占用面积 %d 平方米 " % (self.name,self.size)


class House:
    def __init__(self,name,size):    #房间属性初始化
        self.name=name      #房间名字
        self.size=size      #房间大小
        self.area=size      #房间剩余面积
        self.fur_list=[]    #房间家具列表

    def add(self,fur):
        if fur.size>self.area:      #如果家具比房间剩余面积大
            print("家具太大了")
            return

        self.fur_list.append(fur.name)
        self.area -= fur.size

    def __str__(self):
        return ("这个房子是 %s ,总面积为 %d 平方米
 剩余空间 %d 
 "
                "包含家具 %s "  % (self.name, self.size,self.area,self.fur_list))


##定义Fur对象
bed = Fur("bed", 10)
desk=Fur("desk",5)
table=Fur("table",8)

#打印Fur对象 ,定义__str__ 函数,影响 print的输出结果
print(bed,desk,table)

#定义House对象
house=House("bedroom",20)
#打印对象


#调用add方法
house.add(bed)
#打印对象

print(house)
house.add(desk)
print(house)
house.add(table)
print(house)

 

以上是关于18 面向对象2 房间放入家具的主要内容,如果未能解决你的问题,请参考以下文章

Python基础编程214 ● 面向对象 ● 面向对象案例:存放家具

基于8086家具房间灯光控制设计-设计资料

布局与控件——布局与控件的常用概念

python面向对象封装

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程