展开全部

主编推荐语

Python是一门动态编程语言,它简单而又强大,适用于众多领域。尽管编写Python代码比较容易,但是编写高效且易于维护和复用的代码是一个挑战。

内容简介

Python作为一种高-级程序设计语言,凭借其简洁、易读及可扩展性日渐成为程序设计领域备受推崇的语言之一。 本书基于Python 3.5版本进行讲解,通过13章的内容,深度揭示了Python编程的高-级技巧。本书从Python语言及其社区的现状开始介绍,对Python语法、命名规则、Python包的编写、部署代码、扩展程序开发、管理代码、文档编写、测试开发、代码优化、并发编程、设计模式等重要话题进行了全面系统化的讲解。 本书适合想要进一步提高自身Python编程技能的读者阅读,也适合对Python编程感兴趣的读者参考学习。全书结合典型且实用的开发案例,可以帮助读者创建高性能的、可靠且可维护的Python应用。 Python作为一种高-级程序设计语言,凭借其简洁、易读及可扩展性日渐成为程序设计领域备受推崇的语言之一。
本书基于Python 3.5版本进行讲解,通过13章的内容,深度揭示了Python编程的高-级技巧。本书从Python语言及其社区的现状开始介绍,对Python语法、命名规则、Python包的编写、部署代码、扩展程序开发、管理代码、文档编写、测试开发、代码优化、并发编程、设计模式等重要话题进行了全面系统化的讲解。
本书适合想要进一步提高自身Python编程技能的读者阅读,也适合对Python编程感兴趣的读者参考学习。全书结合典型且实用的开发案例,可以帮助读者创建高性能的、可靠且可维护的Python应用。

目录

  • 版权信息
  • 内容提要
  • 译者简介
  • 作者简介
  • 审稿人简介
  • 前言
  • 第1章 Python现状
  • 1.1 Python的现状与未来
  • 1.2 Python升级及其原因
  • 1.3 追踪Python最新变化——PEP文档
  • 1.4 当前Python 3的普及程度
  • 1.5 Python 3和Python 2的主要差异
  • 1.5.1 为什么要关注这些差异
  • 1.5.2 主要的语法差异和常见陷阱
  • 1.5.3 用于保持跨版本兼容性的常用工具和技术
  • 1.6 不只是CPython
  • 1.6.1 为什么要关注Python实现
  • 1.6.2 Stackless Python
  • 1.6.3 Jython
  • 1.6.4 IronPython
  • 1.6.5 PyPy
  • 1.7 Python开发的现代方法
  • 1.8 应用层Python环境隔离
  • 1.8.1 为什么要隔离
  • 1.8.2 常用解决方案
  • 1.8.3 选择哪种工具
  • 1.9 系统级环境隔离
  • 1.9.1 使用Vagrant的虚拟开发环境
  • 1.9.2 容器化与虚拟化的对比
  • 1.10 常用的生产力工具
  • 1.10.1 自定义Python shell——IPython、bpython、ptpython等
  • 1.10.2 交互式调试器
  • 1.11 有用的资源
  • 1.12 小结
  • 第2章 语法最佳实践——类级别以下
  • 2.1 Python的内置类型
  • 2.1.1 字符串与字节
  • 2.1.2 集合类型
  • 2.2 高级语法
  • 2.2.1 迭代器
  • 2.2.2 yield语句
  • 2.2.3 装饰器
  • 2.2.4 上下文管理器——with语句
  • 2.3 你可能还不知道的其他语法元素
  • 2.3.1 for ... else ...语句
  • 2.3.2 函数注解
  • 2.4 小结
  • 第3章 语法最佳实践——类级别以上
  • 3.1 子类化内置类型
  • 3.2 访问超类中的方法
  • 3.2.1 Python 2中的旧式类与super
  • 3.2.2 理解Python的方法解析顺序
  • 3.2.3 使用super易犯的错误
  • 3.2.4 最佳实践
  • 3.3 高级属性访问模式
  • 3.3.1 描述符
  • 3.3.2 property
  • 3.3.3 槽
  • 3.4 元编程
  • 3.4.1 装饰器—— 一种元编程方法
  • 3.4.2 类装饰器
  • 3.4.3 使用__new__()方法覆写实例创建过程
  • 3.4.4 元类
  • 3.4.5 一些关于代码生成的提示
  • 3.5 小结
  • 第4章 选择好的名称
  • 4.1 PEP 8与命名最佳实践
  • 4.1.1 为何要遵守PEP 8以及何时遵守PEP 8
  • 4.1.2 超越PEP 8——团队的风格指南
  • 4.2 命名风格
  • 变量
  • 4.3 命名指南
  • 4.3.1 用“has”或“is”前缀命名布尔元素
  • 4.3.2 用复数形式命名集合变量
  • 4.3.3 用显式名称命名字典
  • 4.3.4 避免通用名称
  • 4.3.5 避免现有名称
  • 4.4 参数的最佳实践
  • 4.4.1 通过迭代设计构建参数
  • 4.4.2 信任参数和测试
  • 4.4.3 小心使用*args和**kwargs魔法参数
  • 4.5 类的名称
  • 4.6 模块和包的名称
  • 4.7 有用的工具
  • 4.7.1 Pylint
  • 4.7.2 pep8和flake8
  • 4.8 小结
  • 第5章 编写一个包
  • 5.1 创建一个包
  • 5.1.1 Python打包工具的混乱状态
  • 5.1.2 项目配置
  • 5.1.3 自定义setup命令
  • 5.1.4 在开发期间使用包
  • 5.2 命名空间包
  • 5.2.1 为什么有用
  • 5.2.2 PEP 420——隐式命名空间包
  • 5.2.3 以前Python版本中的命名空间包
  • 5.3 上传一个包
  • 5.3.1 PyPI——Python包索引
  • 5.3.2 源代码包与构建包
  • 5.4 独立可执行文件
  • 5.4.1 独立可执行文件何时有用
  • 5.4.2 常用工具
  • 5.4.3 可执行包中Python代码的安全性
  • 5.5 小结
  • 第6章 部署代码
  • 6.1 十二要素应用
  • 6.2 用Fabric进行自动化部署
  • 6.3 你自己的包索引或索引镜像
  • 6.3.1 PyPI镜像
  • 6.3.2 使用包进行部署
  • 6.4 常见约定与实践
  • 6.4.1 文件系统层次结构
  • 6.4.2 隔离
  • 6.4.3 使用进程管理工具
  • 6.4.4 应该在用户空间运行应用代码
  • 6.4.5 使用HTTP反向代理
  • 6.4.6 优雅地重新加载进程
  • 6.5 代码检测与监控
  • 6.5.1 记录错误——sentry/raven
  • 6.5.2 监控系统与应用指标
  • 6.5.3 处理应用日志
  • 6.6 小结
  • 第7章 使用其他语言开发Python扩展
  • 7.1 使用C或者C++编写扩展
  • C或者C++扩展的工作原理
  • 7.2 为什么你想用扩展
  • 7.2.1 提高关键代码段的性能
  • 7.2.2 集成现有的使用不同语言编写的代码
  • 7.2.3 集成第三方动态库
  • 7.2.4 创建自定义数据类型
  • 7.3 编写扩展
  • 7.3.1 纯C扩展
  • 7.3.2 Cython
  • 7.4 挑战
  • 7.4.1 额外的复杂性
  • 7.4.2 调试
  • 7.5 无扩展的动态库接口
  • 7.5.1 ctypes
  • 7.5.2 CFFI
  • 7.6 小结
  • 第8章 管理代码
  • 8.1 版本控制系统
  • 8.1.1 集中式系统
  • 8.1.2 分布式系统
  • 8.1.3 集中式还是分布式
  • 8.1.4 尽可能使用Git
  • 8.1.5 Git工作流程与GitHub工作流程
  • 8.2 持续的开发过程
  • 8.2.1 持续集成
  • 8.2.2 持续交付
  • 8.2.3 持续部署
  • 8.2.4 常用的持续集成工具
  • 8.2.5 选择正确的工具和常见的陷阱
  • 8.3 小结
  • 第9章 文档化你的项目
  • 9.1 7项技术写作规则
  • 9.1.1 两步写作
  • 9.1.2 定位读者
  • 9.1.3 使用简单的风格
  • 9.1.4 限制信息范围
  • 9.1.5 使用现实中的代码示例
  • 9.1.6 使用轻量且充分的方法
  • 9.1.7 使用模板
  • 9.2 reStructuredText入门
  • 9.2.1 章节结构
  • 9.2.2 列表
  • 9.2.3 行内标记
  • 9.2.4 文字块
  • 9.2.5 链接
  • 9.3 构建文档
  • 构建文档集
  • 9.4 构建自己的文档集
  • 9.4.1 构建格局
  • 9.4.2 文档构建与持续集成
  • 9.5 小结
  • 第10章 测试驱动开发
  • 10.1 我不测试
  • 10.1.1 测试开发的原则
  • 10.1.2 什么样的测试
  • 10.1.3 达式Python标准测试工具
  • 10.2 我做测试
  • 10.2.1 unittest陷阱
  • 10.2.2 unittest的替代品
  • 10.2.3 测试覆盖率
  • 10.2.4 仿真与模拟
  • 10.2.5 测试环境与依赖兼容性
  • 10.2.6 文档驱动开发
  • 10.3 小结
  • 第11章 优化——一般原则与分析技术
  • 11.1 3个优化规则
  • 11.1.1 首先要能工作
  • 11.1.2 从用户的角度考虑
  • 11.1.3 保持代码的可读性和可维护性
  • 11.2 优化策略
  • 11.2.1 找到另外的罪魁祸首
  • 11.2.2 扩展硬件
  • 11.2.3 编写速度测试
  • 11.3 查找瓶颈
  • 11.3.1 分析CPU使用情况
  • 11.3.2 分析内存使用
  • 11.3.3 分析网络使用情况
  • 11.4 小结
  • 第12章 优化——一些强大的技术
  • 12.1 降低复杂度
  • 12.1.1 循环复杂度
  • 12.1.2 大O记法
  • 12.2 简化
  • 在列表中搜索
  • 12.3 使用集合模块
  • 12.3.1 deque
  • 12.3.2 defaultdict
  • 12.3.3 namedtuple
  • 12.4 架构体系的权衡
  • 12.4.1 使用启发式和近似算法
  • 12.4.2 使用任务队列和延迟处理
  • 12.4.3 使用概率型数据结构
  • 12.5 缓存
  • 12.5.1 确定性缓存
  • 12.5.2 非确定性缓存
  • 12.5.3 缓存服务
  • 12.6 小结
  • 第13章 并发
  • 13.1 为什么需要并发
  • 13.2 多线程
  • 13.2.1 什么是多线程
  • 13.2.2 Python如何处理多线程
  • 13.2.3 何时应该使用多线程
  • 13.3 多进程
  • 内置的multiprocessing模块
  • 13.4 异步编程
  • 13.4.1 协同多任务与异步I/O
  • 13.4.2 Python中的async和await关键字
  • 13.4.3 老Python版本中的asyncio
  • 13.4.4 异步编程实例
  • 13.4.5 使用futures将异步代码同步化
  • 13.5 小结
  • 第14章 有用的设计模式
  • 14.1 创建型模式
  • 单例
  • 14.2 结构型模式
  • 14.2.1 适配器
  • 14.2.2 代理
  • 14.2.3 外观
  • 14.3 行为模式
  • 14.3.1 观察者
  • 14.3.2 访问者
  • 14.3.3 模板
  • 14.4 小结
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

人民邮电出版社

人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。