"""房间放入家具
定义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 平方米\n 剩余空间 %d \n "
"包含家具 %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)