pattern 学习记录
来源:互联网 发布:床上用品多久清洗 知乎 编辑:程序博客网 时间:2024/04/29 15:43
1. 单例模式
只有一个实例、它必须自行创建这个实例,不需要显示的手动去创建实例、它必须自行向整个系统提供这个实例。
在python中模块就是一个实现单例很好的工具,
python的模块:
所有变量都会绑定到模块
模块只需要初始化一次
import 机制是线程,安全的(保证在并发状态下模式也只有一个实例)
惯用方法:
在命名模块的时候,首个字母大写 Monitor.py
__all__
2. 装饰器
pythonic的装饰器
def func(arg):
def _(tmp = 0.0):
return tmp + arg
return _
a = func(0.99)
b = func(0.1)
c = func(0.2)
print a(b(c()))
-----> 1.2
3. 动态语言特有的设计模式: Mixin ( and duck typing )
动态地改变实例的类型的基类,在不修改生成实例过程的情况下,给实例增加(改变)功能。可用它实现插件框架。
class Bird(object):
pass
bird = Bird()
class FlyMixin:
def fly(self):
print "I can fly."
bird.__class__.__bases__ += (FlyMixin,)
bird.fly()
---> I can fly.
工具:
docopt 解释器模式 (vs. getopt, optparse, argparse)
0 0
- pattern 学习记录
- 设计模式(design pattern) 学习记录
- Iterator Pattern 学习笔记
- java学习 pattern/matcher
- Design pattern学习笔记 – observer pattern
- Singleton Pattern 和 Factory Pattern 的学习
- 设计模式学习 (Singleton Pattern)
- 学习正则表达式:Pattern类
- 设计模式学习-Adapter Pattern
- Design Pattern学习笔记之装饰(Decorator Pattern)
- Design Pattern学习笔记之单例(Singleton Pattern)
- Design Pattern学习笔记之命令(Command Pattern)
- --学习记录
- 学习记录
- 学习记录
- 学习记录
- 学习记录
- 学习记录
- 有关eclipse闪退的问题以及权限问题~~
- “一杯水主义”的性伦理观
- 视图之间的数据传递 ios
- 类型转换
- 软件工程——软件计划
- pattern 学习记录
- windows重置mysql 中root@localhost的密码
- c编程必知
- 3e1c
- new与malloc
- make: *** [depend] 错误 2
- sencha touch笔记(5)——DataView组件(1)
- jquery之each循环遍历的方法---split 分割字符串返回数组
- SAP维护工厂日历