这本书中文翻译一如既往地被人诟病,不过我也没能力去阅读英文原版,就硬着头皮去理解吧。
与国内教材不同的是,虽然名字是《数据结构与算法》,但本书前70页涵盖了36页python语法+34页的面向对象编程,这些内容作为基础还是不要太着急,重视一下下
python入门部分 对于我个人而言的新鲜内容:
- 标识符(变量名)引用的对象(变量值)有人来有人走有人去有人留,其中有一些对象属于不可变的python内置类(比如bool int float tuple str)那么给a=1;a=2其实是换掉了容器a所引用的int,而另一些对象属于可变的python内置类(如list set和dict);
- 当我们用"内置类"去理解所谓变量类型时,就不难理解int('123');list('hello')这种我们所谓的类型转换了,其实是带参的实例化嘛;
- set类的对象真的可以理解为数学上的集合,进行交 并 差 判断子集超集等集合运算;
OO部分 对于我个人而言的新鲜内容:
- 目标 原则:OO的目标是鲁棒+适配+重用,原则是模块+抽象+封装(形象理解:锤子插头回形针,网格卷积开关盒)
- 模式:(name, context, content, result) 区分开"软工的设计模式"和"算法的设计模式" (本书居然两部分都讲了,太划算了)
- 我们一提到算法,就想到的(递归 摊销 分支 DP...)其实是"算法的设计模式"
- 而(迭代器 适配器 定位器 模板方法 工厂模式)则为"软工的设计模式"