跟着b站上视频操作的,我觉得还是没有吃透类和对象
class HouseItem:
def __init__(self,name,area):
self.name=name
self.area=area
def __str__(self):
return("[%s]占地%2.f"%(self.name,self.area))
class House:
def __init__(self,house_type,area):
self.house_type=house_type
self.area_type=area
# 剩余面积
self.free_area = area
# 家具名称列表
self.item_list = []
def __init__(self,house_type,area):
self.house_type=house_type
self.area=area
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-=item.area
# 1.创建家具
bed=HouseItem("席梦思", 40)
chest=HouseItem("衣柜", 4)
table=HouseItem("餐桌", 20)
print(bed)
print(chest)
print(table)
# 2.创建房子对象
my_home=House("两室一厅",60)
my_home.add_item(bed)
my_home.add_item(chest)
my_home.add_item(table)
print(my_home)
运行结果:
[席梦思]占地40
[衣柜]占地 4
[餐桌]占地20
要添加[席梦思]占地40
Traceback (most recent call last):
File "D:/Pycharm_Project/pythonProject/08_面向对象基础/hm_12_摆放家具_02_房子类.py", line 69, in <module>
my_home.add_item(bed)
File "D:/Pycharm_Project/pythonProject/08_面向对象基础/hm_12_摆放家具_02_房子类.py", line 48, in add_item
if item.area>self.free_area:
AttributeError: 'House' object has no attribute 'free_area'