Python面向对象封装方法实例演示
定义一个家具类,包括家具的名字和占地面积
class HouseItem:
def __init__(self,name,area):
self.name = name
self.area = area
def __str__(self):
return "[%s] 占地 %.2f" % (self.name,self.area)
bed = HouseItem("席梦思", 4)
chest = HouseItem("衣柜", 2)
table = HouseItem("桌子", 100)
print(bed)
print(table)
print(chest)
定义一个房子类,包括初始化方法,可添加家具的类型和占地面积
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 ("户型: %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)
# 判断家具的面积
if item.area >self.free_area:
print("%s 的面积太大了,无法添加"%item.name)
# 添加家具
else:
self.item_list.append(item.name)
# 计算剩余面积
self.area -= item.area
创建房子对象并添加家具
my_hosue = House("两室一厅", 80)
print(my_hosue)
my_hosue.add_item(bed)
my_hosue.add_item(table)
my_hosue.add_item(chest)
print(my_hosue