本系列为《编写高质量代码-改善Python程序的91个建议》的读书笔记。
温馨提醒:在阅读本书之前,强烈建议先仔细阅读:PEP规范,增强代码的可阅读性,配合优雅的pycharm编辑器(开启pep8检查)写出规范代码,是Python入门的第一步。
建议50:利用模块实现单例模式
1)所有的变量都会绑定到模块;
2)模块只初始化一次;
3)import机制是线程安全的。
建议51: 用mixin模式让程序更加灵活
模板方法模式:在一个方法中定义一个算法的骨架,并将一些实现步骤延迟到子类中。
Python 中每一个类都有一个__base__属性,是一个元组,用来存放所有的基类,基类在运行中可以动态改变。
建议52:用发布订阅模式实现松耦合
发布订阅模式(publish/subscribe或pub/sub)是一种编程模式,消息的发送者(发布者)不会发送其消息给特定的接收者(订阅者),而是将发布的消息分为不同的类别直接发布,并不关注订阅者是谁。
1  | #!/usr/bin/env python  | 
建议53:用状态模式美化代码
状态模式:当一个对象的内在状态改变时允许改变其行为,但这个对象看起来像是改变了其类。主要用于控制一个对象状态的条件表达式过于复杂的情况,其可把状态的判断逻辑转移到表示不同状态的一系列类中,进而把复杂的判断逻辑简化。
@stateful修饰函数,重载了被修饰类的getattr()方法从而使得类的实例方法能调用当前状态类的方法。被@stateful修饰后的类的实例是带有状态的,能够使用curr()查询当前状态,也可以使用switch()进行状态切换。
1  | #!/usr/bin/env python  |