网上书城网站系统建设,漳州台商投资区建设局网站,备案的网站如何访问,网站安全狗 拦截301背景#xff1a;最近有些时间#xff0c;打算把python每日学的计划继续执行起来。由于不知道从何入手#xff0c;就暂定从学习《python学习手册》开始#xff0c;这本书也是python领域的一本权威著作#xff0c;各方面都写的非常详细#xff0c;读起来很有帮助#xff0…背景最近有些时间打算把python每日学的计划继续执行起来。由于不知道从何入手就暂定从学习《python学习手册》开始这本书也是python领域的一本权威著作各方面都写的非常详细读起来很有帮助就是篇幅有点多一共有1467页。今天学习的是该书第26章《OOP:宏伟蓝图》。
书里的原始内容我就不多写了只谈谈该章对我的一些启发
面向对象的根本目的是什么
我个人理解面向对象的根本目的就是减少重复代码就是程序员为了提高效率偷懒创造出来的东西。其实这有点类似于现实中的成熟工业品的模块化设计 比如说电脑内部元件都是模块化的有cpu、主板、电源、显卡等各种设备一组装就弄好了。现实中把这件部件组装起来就是人要实现的功能了。而面对大型软件的开发走向面向对象是一种必然只不过组装这个过程有一部分放到了程序里面相当于程度给定义了一个类的概念而在现实中电脑是存在人大脑里的一个概念。不用再先行定义了。
实事上书上的一些看法也是这样的 ……但如果合理使用那么类所支持的代码我不用的方式是Python其他程序组件难以提供的。事实上代码重用也是它们最重要的目的。 OOP不仅仅是一门技术更是一种经验 ……直到你有机会研究程序员如何将这些概念运用于较大系统之前你可能难以理解使用这些术语的原因。OOP不仅仅是一门技术更是一种经验. 这句话我觉得说的特别贴切oop确实不仅仅是一种技术如果只是学oop那就会有种困惑不知道何时需要用oop但实际上只要在用程序处理较为复杂的问题的时候可能就需要用到OOP。
妥善使用类需要一些预先的规划 由于妥善使用类需要一些预先的规划因此相比于那些采用战术模式工作的人时间有限采用战略模式工作的人做长期产品开发对类会更感兴趣一些。 确实如此一些小的程序根本用不上面向对象直接写函数写代码就可以了但在稍微复杂一点的程序中就会发现函数与函数之间可能需要传递数据一些函数需要共用一些数据某些函数在一个范围内服务不想他的影响超出范围内又不想别的函数影响范围内的东西诸如此类的需求就需要用面向对象的方法。虽然python的包也能解决类似的一些问题但用起来总是没有类更方便的。python的包和模块是从物理上把代码拆分开来而类是从逻辑上把代码拆分开来。 使用类需要提前对程序做一定的设计这会带来一些工作量并且良好的设计也不是一件很容易的事所以带来了一定的复杂度。 ……面向对象模型与经典的过程加记录的数据处理模型相比并没有太多的差异。在OOP中实例就像是带有“数据”的记录而类则是处理这些记录的“程序”。不过OOP中还有继承层次的概念这与以往的模型相比能更好的支持软件定制。 继承让代码也以更好的支持定制。