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 房间放入家具的主要内容,如果未能解决你的问题,请参考以下文章