需求
75.0 公斤0.5 公斤1 公斤
?
提示:在 对象的方法内部,是可以 直接访问对象的属性 的!
class Person:
    """人类"""
    def __init__(self, name, weight):
        self.name = name
        self.weight = weight
    def __str__(self):
        return "我的名字叫 %s 体重 %.2f 公斤" % (self.name, self.weight)
    def run(self):
        """跑步"""
        print("%s 爱跑步,跑步锻炼身体" % self.name)
        self.weight -= 0.5
    def eat(self):
        """吃东西"""
        print("%s 是吃货,吃完这顿再减肥" % self.name)
        self.weight += 1
xiaoming = Person("小明", 75)
xiaoming.run()
xiaoming.eat()
xiaoming.eat()
print(xiaoming)
需求
75.0 公斤45.0 公斤0.5 公斤1 公斤
?
提示

?
需求
4 平米2 平米1.5 平米
?
剩余面积
add_item 方法,向房间 添加家具 时,让 剩余面积 -= 家具面积思考:应该先开发哪一个类?
答案 —— 家具类
class HouseItem:
    def __init__(self, name, area):
        """
        :param name: 家具名称
        :param area: 占地面积
        """
        self.name = name
        self.area = area
    def __str__(self):
        return "[%s] 占地面积 %.2f" % (self.name, self.area)
# 1. 创建家具
bed = HouseItem("席梦思", 4)
chest = HouseItem("衣柜", 2)
table = HouseItem("餐桌", 1.5)
print(bed)
print(chest)
print(table)
小结
__init__ 和 __str__ 两个内置方法class House:
    def __init__(self, house_type, area):
        """
        :param house_type: 户型
        :param area: 总面积
        """
        self.house_type = house_type
        self.area = area
        
        # 剩余面积默认和总面积一致
        self.free_area = area
        # 默认没有任何的家具
        self.item_list = []
    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)
...
# 2. 创建房子对象
my_home = House("两室一厅", 60)
my_home.add_item(bed)
my_home.add_item(chest)
my_home.add_item(table)
print(my_home)
小结
__init__ 和 __str__ 两个内置方法add_item 方法 准备添加家具add_item 方法,将 三件家具 以实参传递到 add_item 内部需求
    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
add_item 方法 将家具添加到房子中原文:https://www.cnblogs.com/JcrLive/p/12235647.html