这章讲的是运算符重载。运算符重载不是什么新玩意儿,老早就有。但是在C++时代,名声不佳,因为滥用的情况比较多,而且语法也不怎么方便。所谓运算符重载,就是你定义操作符和它的运算规则,适度使用,可以有效的提升代码可读性。 比如,字符串相加:st…
分类:读书笔记
流畅的Python-Fluent Python读书笔记-12-继承的优缺点
这章探讨继承和子类化问题。 首先,不要子类化内置的类型。因为内置类型有自己的操作规则,子类化内置类型,修改已有方法,很容易破坏正常的操作逻辑。这是个坑。 Python少见的支持了多重继承。其它常见语言只有C++支持多重继承,别的语言都选择了…
流畅的Python-Fluent Python读书笔记-11-接口:从协议到抽象基类
这章讨论“接口”问题。折腾面向对象那些年,接口被大书特书过。特别是Java。但是Python选择的是完全不同的路线。它选择简洁和实用,并不追求纯粹。 Python更推崇所谓“鸭子类型”的做法:只要你叫的像鸭子,走路像鸭子,那你就是鸭子 …
流畅的Python-Fluent Python读书笔记-10-序列的修改、散列和切片
这章以一个vector类为案例,主要研究如何设计实现序列操作,修改,散列,切片,以及属性的自定义操作。个人觉得这章内容更适合设计类库的开发者。普通应用可能会部分用到里面的技术,比如自定义序列切片操作。所以参考下,知道个大概即可,真正用到的时…
流畅的Python-Fluent Python读书笔记-09-符合Python风格的对象
这章延续第1章内容,探讨如何实现很多Python类型中常见的特殊方法。这些特殊方法我觉得可以看成一种特别的“钩子”。Python内部设计的远比PHP/JavaScript语言严谨、精巧、精细,它定义了对象的各种各样的运算方式,这些方式在内部…
流畅的Python-Fluent Python读书笔记-08-对象引用、可变性和垃圾回收
这章开始讨论Python面向对象的话题。 Python这种动态语言,变量本身是谈不上“类型”的,因为它可以随时指向另外的内容。本章一开头就提到这点,不能把变量看成“盒子”,而要看成“标签”。它跟静态语言正好是反的。另外,Python语言支持…
流畅的Python-Fluent Python读书笔记-07-函数装饰器和闭包
这章讲的是函数装饰器和闭包。函数装饰器在Python框架、类库中大量使用,不懂这个是看不懂也无法理解它们的。闭包其实是存在了很久的概念,只是在函数式编程逐渐兴起之后,开始被广大程序猿群众熟知。特别是在JavaScript里面,到处都是闭包。…
流畅的Python-Fluent Python读书笔记-06-使用一等函数实现设计模式
这章延续上一章节的内容,继续讨论函数。这里探讨使用一等函数来实现设计模式。 设计模式是当年红极一时的概念,现在也是余威犹存。因为它反应了软件领域一些本质性的有效表达结构。不过滥用设计模式的情况也是很多的。当年很多人学了设计模式,不是根据实际…
流畅的Python-Fluent Python读书笔记-05-一等函数
这章开始讨论Python的函数。在Python中,函数是一等对象,怎么理解这个概念?定义是这样的: 在运行时创建 能赋值给变量或数据结构中的元素 能作为参数传给函数 能作为函数的返回结果 我强烈建议,看这章内容的时候,对比一下JavaScr…
Dependency Injection-依赖注入详解
依赖注入是目前很多优秀框架都在使用的一个设计模式。Java的开发框架如Spring在用,PHP的Laravel/Phalcon/Symfony等也在用。好多不同语言的框架,设计思想大同小异,相互借鉴参考。熟悉了一个语言的开发框架,其它不同的…