请问一下为什么第二个类里面的 print(f"要添加{item}")会调用第一个类里面的–str–(self)呢?
“”"
1.房子(House) 有 户型、总面积 和 家具名称列表
新房子没有任何的家具
2.家具(HouseItem)有 名字 和 占地面积,其中
席梦思(bed) 占地 4 平米
衣柜(chest) 占地 2 平米
餐桌(table) 占地 1.5 平米
3.将以上三件 家具 添加 到 房子 中
4.打印房子时,要求输出:户型、总面积、剩余面积、家具名称列表
“”"
class HouseItem:
def init(self,name,area):
self.name = name
self.area = area
def __str__(self):
return "[%s] 占地 %.2f" % (self.name,self.area)
class House:
def init(self,house_type,area):
self.house_type = house_type
self.area = area
self.free_area = area
self.item_list = []
def __str__(self):
return print(f"户型:{self.house_type},总面积:{self.area},剩余面积:{self.free_area},家具列表:{self.item_list}")
def address(self,item):
print(f"要添加{item}")
# 1. 判断家具的面积,这里的item.area要理解清楚。
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(“席梦思”,50)
chest = HouseItem(“衣橱”,60)
table = HouseItem(“餐桌”,20)
#2.创建房子对象
my_house = House(“阳光小区”,1000)
my_house.address(bed)
my_house.address(chest)
my_house.address(table)
print(my_house)
#主程序只负责创建房子对象和家具对象
#让房子对象调用add_item方法将家具添加到房子中
#面积计算、剩余面积、家具列表等处理都被封装到房子类的内部
#python#