首先感谢各位大佬的帮忙,本人新手,在尝试做例题的时候,答案提到应该把bed,chest,table用三行my_house.add_items() 分别导入,我在尝试能否直接导入一个列表时,意识到了问题。如果用for遍历,出来的是我想要的,
如:要添加 ['席梦思']:占地4.00
可是如果直接my_house.add_items(item_list), 出现的却是内存地址。
要添加 (<__main__.HouseItem object at 0x0000018A9E566588>, <__main__.HouseItem object at 0x0000018A9E841DD8>, <__main__.HouseItem object at 0x0000018A9E856860>)
难以理解为什么,大概是某些python的基础我还没有打牢,现在完全想不到什么原因,还请各位大佬提点一二。
源代码如下
class HouseItem:
def __init__(self,name,area):
self.name = name
self.area = area
def __str__(self):
return '{}:占地{:.2f} \t'.format([self.name],self.area)
class House:
def __init__(self,house_type,house_area):
self.house_type = house_type
self.house_area = house_area
# 剩余面积
self.rest_area = house_area
# 家具名称列表
self.item_list = []
def __str__(self):
return '户型:{}\n总面积: {:.2f}\n家具类型:{}'.format(self.house_type,
self.house_area,self.item_list)
def add_items(self,item):
print('要添加 {}'.format(item))
# 创建家具
bed = HouseItem('席梦思',4)
chest = HouseItem('衣柜',2)
table = HouseItem('餐桌',1.5)
item_test1 = bed,chest,table
item_list = bed,chest,table
item_test2 = [bed,chest,table]
my_house = House('两室一厅',120)
my_house.add_items(item_list)
for n in item_list:
my_house.add_items(n)