博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Python面向对象编程指南》——导读
阅读量:6113 次
发布时间:2019-06-21

本文共 1706 字,大约阅读时间需要 5 分钟。

1e069a8aec147637a42bc570ab7d3a9d499398bd

前 言

本书主要介绍Python语言的高级特性,特别是如何编写高质量的Python程序。这通常意味着编写高性能且拥有良好可维护性的程序。同时,我们也会探究不同的设计方案并确定究竟是哪种方案提供了最佳性能。而对于一些正在寻找解决方案的问题,这也是一种很好的方式。

本书的大部分内容将介绍一种给定设计的不同替代方案。一些方案性能更好,另一些方案更加简单或者更加适合于特定领域的问题。最重要的是,找到最好的算法和最优的数据结构,以最少的开销换取最大的价值。时间就是金钱,高效的程序会为它们的用户创造更多的价值。

Python的很多内部特性都可以直接被应用程序所使用。这意味着,我们的程序可以与Python现有的特性非常好地整合。充分利用这些Python特性,可以让我们的面向对象设计整合得很好。

我们经常会为一个问题寻找多种不同的解决方案。当你评估不同的算法和数据结构时,通常会设计几种不同的方案,它们在性能和内存的使用上不尽相同。通过评估不同的方案,最终合理地优化应用程序,这是一种重要的面向对象设计技巧。

本书一个更为重要的主题是,对于任何问题,没有所谓的唯一且最好的方法。相反,会有许多不同的方案,而这些方案也各有优劣。

关于编程风格的主题非常有趣。敏锐的读者会注意到,在一些非常细微的部分,例如在名称选择和符号的使用上,并非所有的例子都完全符合PEP-8。

随着你能够越来越熟练地以面向对象的方式使用Python,也将不得不花大量的时间去阅读各种Python源码。你会发现,甚至在Python标准库的模块中,都有很大的可变性。相比于展示完全一致的例子,我们更倾向于去关注那些不一致的部分,正如我们在各种开源项目中所看到的,一致性的缺乏,正是对代码更好的认可。

目 录

[第1部分 用特殊方法实现Python风格的类

第1章 __init__()方法
1.1 隐式的基类——object](
1.5.1 错误的工厂设计和模糊的else语句
1.5.2 使用elif简化设计来获得一致性
1.5.3 使用映射和类来简化设计
1.7.1 封装集合类
1.7.2 扩展集合类
1.7.3 可适应更多需求的另一种设计
1.11.1 更复杂的初始化方式
1.11.2 静态函数的初始化
1.12.1 带有类型验证的初始化
1.12.2 初始化、封装和私有化
[第2章 与Python无缝集成——基本特殊方法
2.1 __repr__()和__str__()方法](
2.1.1 非集合对象的__str__()和__repr__()
2.1.2 集合中的__str__()和__repr__()
2.2.1 内嵌格式规范
2.2.2 集合和委托格式规范
2.3.1 决定哈希的对象
2.3.2 有关不可变对象和继承的默认行为
2.3.3 重载不可变对象
2.3.4 重载可变对象
2.3.5 从可变的Hand类中生成一个不可变的Hand类
2.6.1 设计比较运算
2.6.2 实现同一个类的对象比较
2.6.3 实现不同类的对象比较
2.6.4 硬总和、软总和和多态
2.6.5 不同类比较的例子
2.7.1 引用计数和对象销毁
2.7.2 循环引用和垃圾回收
2.7.3 循环引用和weakref模块
2.7.4 __del__()和close()方法
2.9.1 元类型示例1——有序的属性
2.9.2 元类型示例2——自引用
第3章 属性访问、特性和修饰符
第4章 抽象基类设计的一致性
第5章 可调用对象和上下文的使用
第6章 创建容器和集合
第7章 创建数值类型
第8章 装饰器和mixin——横切方面
第2部分 持久化和序列化
第9章 序列化和保存——JSON、YAML、Pickle、CSV和XML
第10章 用Shelve保存和获取对象
第11章 用SQLite保存和获取对象
第12章 传输和共享对象
第13章 配置文件和持久化
第3部分 测试、调试、部署和维护
第14章 Logging和Warning模块
第15章 可测试性的设计
第16章 使用命令行
第17章 模块和包的设计
第18章 质量和文档

转载地址:http://orjka.baihongyu.com/

你可能感兴趣的文章
前端第七天
查看>>
BZOJ 2190[SDOI2008]仪仗队
查看>>
图解SSH原理及两种登录方法
查看>>
[转载] 七龙珠第一部——第058话 魔境圣地
查看>>
【总结整理】JQuery基础学习---样式篇
查看>>
查询个人站点的文章、分类和标签查询
查看>>
基础知识:数字、字符串、列表 的类型及内置方法
查看>>
JSP的隐式对象
查看>>
P127、面试题20:顺时针打印矩阵
查看>>
JS图片跟着鼠标跑效果
查看>>
[SCOI2005][BZOJ 1084]最大子矩阵
查看>>
学习笔记之Data Visualization
查看>>
Leetcode 3. Longest Substring Without Repeating Characters
查看>>
【FJOI2015】金币换位问题
查看>>
数学之美系列二十 -- 自然语言处理的教父 马库斯
查看>>
Android实现自定义位置无标题Dialog
查看>>
面试总结
查看>>
Chrome浏览器播放HTML5音频没声音的解决方案
查看>>
easyui datagrid 行编辑功能
查看>>
类,对象与实例变量
查看>>