Prototype pattern (Python recipe)
来源:互联网 发布:配音视频软件 编辑:程序博客网 时间:2024/06/18 06:37
原文链接:http://code.activestate.com/recipes/86651-prototype-pattern/
http://dongweiming.github.io/python-pototype.html
from copy import deepcopyclass Prototype: def __init__(self): self._objs = {} def registerObject(self, name, obj): """ register an object. """ self._objs[name] = obj def unregisterObject(self, name): """unregister an object""" del self._objs[name] def clone(self, name, **attr): """clone a registered object and add/replace attr""" obj = deepcopy(self._objs[name]) obj.__dict__.update(attr) return obj
if __name__ == '__main__': class A: pass a=A() prototype=Prototype() prototype.registerObject("a",a) b=prototype.clone("a",a=1,b=2,c=3) # 这里会返回对象a print(a) # 这里的对象其实已经被修改成(1, 2, 3) print(b.a, b.b, b.c)
0 0
- Prototype pattern (Python recipe)
- Prototype Pattern
- prototype pattern
- Prototype Pattern
- python django recipe app
- Python实现设计模式--07.原型模式(Prototype Pattern)
- [Design Pattern]:Prototype
- 原型模式(Prototype Pattern)
- 原型模式(Prototype Pattern)
- 原型模式(Prototype Pattern)
- 原型模式 Prototype Pattern
- 原型模式 Prototype Pattern
- Prototype Design Pattern
- Design Pattern-Prototype
- 原型模式(Prototype Pattern)
- java design pattern -- prototype
- 原型模式( Prototype Pattern)
- 原型模式【PROTOTYPE PATTERN 】
- java中的gc机制
- seL4的编译和运行(OdroidXU3)
- Flex中容易忽略的属性默认值
- 编译Android程序
- nmap原理及使用方法
- Prototype pattern (Python recipe)
- HTTPS 前端劫持
- java中object常用方法
- 树型菜单数据项AJAX实现增删改查
- 【Selenium学习笔记】webdriver对鼠标的操作
- 如何让你的Android SDK下载或者升级快如闪电
- C中的位域与大小端问题
- PRML1-引言
- C函数的模拟重载实现说明