面向对象案例讲解 | 手把手教你入门Python之五十六

简介: 通过解决房屋放置家具问题来解释面向对象的特点。

上一篇:函数案例讲解 | 手把手教你入门Python之五十五
下一篇:Python的内置属性 | 手把手教你入门Python之五十七

本文来自于千锋教育在阿里云开发者社区学习中心上线课程《Python入门2020最新大课》,主讲人姜伟。

面向对象练习

房子(House)有户型、总面积、剩余面积 和 家具名称列表 属性
新房子没有任何的家具
将 家具的名称 追加到 家具名称列表 中
判断 家具的面积 是否 超过剩余面积,如果超过,提示不能添加这件家具
家具(Furniture)有 名字 和 占地面积属性,其中
席梦思(bed)占地 4 平米
衣柜(chest)占地 2 平米
餐桌(table)占地 1.5 平米
将以上三件 家具 添加到 房子 中
打印房子时,要求输出:户型、总面积、剩余面积、家具名称列表

class House(object):
    # 缺省参数
    def __init__(self,house_type, total_area, fru_list=None):
        if fru_list is None:  # 如果这个值是None
            fru_list = []   # 将fru_list设置为空列表

        self.house_type = house_type
        self.total_area = total_area
        self.free_area = total_area * 0.6
        self.fru_list = fru_list

    def add_fru(self, x):
        if self.free_area < x.area:
            print('剩余面积不足,放不进去了')
        else:    
            self.fru_list.append(x.name)
            self.free_area -= x.area

    def __str__(self):
        return '户型={}, 总面积={}, 剩余面积={}, 家具列表={}'.format(self.house_type, self.total_area, self.free_area, self.fru_list)

class Furniture(object):
    def __init__(self, name, area):
        self.name = name
        self.area = area


# 创建房间对象的时候,传入户型和总面积
house = House('一室一厅', 20)


bed = Furniture('席梦思', 4)
chest = Furniture('衣柜', 2)
table = Furinture('餐桌', 1.5)
sofa = Furinture('沙发', 10)


# 把家具添加到房间里(面向对象关注点:让谁做)
house.add_fru(sofa)
house.add_fru(bed)
house.add_fru(chest)
house.add_fru(table)

print(house)

执行结果:
image.png

配套视频

相关文章
|
1月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
271 7
|
2月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
314 1
|
1月前
|
数据采集 监控 数据库
Python异步编程实战:爬虫案例
🌟 蒋星熠Jaxonic,代码为舟的星际旅人。从回调地狱到async/await协程天堂,亲历Python异步编程演进。分享高性能爬虫、数据库异步操作、限流监控等实战经验,助你驾驭并发,在二进制星河中谱写极客诗篇。
Python异步编程实战:爬虫案例
|
1月前
|
Cloud Native 算法 API
Python API接口实战指南:从入门到精通
🌟蒋星熠Jaxonic,技术宇宙的星际旅人。深耕API开发,以Python为舟,探索RESTful、GraphQL等接口奥秘。擅长requests、aiohttp实战,专注性能优化与架构设计,用代码连接万物,谱写极客诗篇。
Python API接口实战指南:从入门到精通
|
1月前
|
存储 Java 调度
Python定时任务实战:APScheduler从入门到精通
APScheduler是Python强大的定时任务框架,通过触发器、执行器、任务存储和调度器四大组件,灵活实现各类周期性任务。支持内存、数据库、Redis等持久化存储,适用于Web集成、数据抓取、邮件发送等场景,解决传统sleep循环的诸多缺陷,助力构建稳定可靠的自动化系统。(238字)
457 1
|
2月前
|
调度 数据库 Python
Python异步编程入门:asyncio让并发变得更简单
Python异步编程入门:asyncio让并发变得更简单
180 5
|
2月前
|
数据采集 存储 XML
Python爬虫入门(1)
在互联网时代,数据成为宝贵资源,Python凭借简洁语法和丰富库支持,成为编写网络爬虫的首选。本文介绍Python爬虫基础,涵盖请求发送、内容解析、数据存储等核心环节,并提供环境配置及实战示例,助你快速入门并掌握数据抓取技巧。
|
数据采集 JSON JavaScript
Python爬虫案例:抓取猫眼电影排行榜
python爬取猫眼电影排行榜数据分析,实战。(正则表达式,xpath,beautifulsoup)【2月更文挑战第11天】
612 2
Python爬虫案例:抓取猫眼电影排行榜
|
4月前
|
数据采集 存储 NoSQL
Python爬虫案例:Scrapy+XPath解析当当网网页结构
Python爬虫案例:Scrapy+XPath解析当当网网页结构
|
数据采集 前端开发 NoSQL
Python编程异步爬虫实战案例
Python编程异步爬虫实战案例
293 2

推荐镜像

更多
下一篇
oss云网关配置