class house_item:
def __init__(self,name,area):
self.name=name
self.area=area
def __str__(self):
return "%s,\n面积是%.2f" % (self.name,self.area)
class house:
def __init__(self,house_type,house_area):
self.type=house_type
self.area=house_area
self.free_area=house_area
self.itemlist=[]
def __str__(self):
return ("房子类型:%s\n房子面积:%.2f\n房子剩余面积:%.2f\n房子家具列表:%s\n"
%(self.type,self.area,self.free_area,self.itemlist))
def additem(self,item):
print("要添加的家具是:%s"%item)
if item.area >self.free_area:
return "家具面积大,不能添加"
self.free_area -=item.area
self.itemlist.append(item.name)
bed=house_item("床",4)
myhome=house("两室一厅",60)
myhome.additem(bed)
print(myhome)
输出:
要添加的家具是:床,
面积是4.00
房子类型:两室一厅
房子面积:60.00
房子剩余面积:56.00
房子家具列表:['床']
简单说明一下学习过程吧,一开始不明白为什么会在myhome 对象中可以通过一个bed,进行传两个值
后来发现是通过myhome对象调用了bed对象(bed对象中有两个参数),通过item.area进行调用,
我的理解是如下图:
有写的不对的地方请大神提出,指点,共同交流!分享记录下,给新人指路吧!