Python-Bunch模式

来源:互联网 发布:经典都市小说知乎 编辑:程序博客网 时间:2024/06/05 15:57

“Bunch”设计模式:

首先,它能让我们以命令行参数的形式创建相关对象,并设置任何属性。

[python] view plain copy
 print?
  1. >>> class Bunch(dict):  
  2.     def __init__(self,*args,**kwds):  
  3.         super(Bunch,self).__init__(*args,**kwds)  
  4.         self.__dict__=self  
  5.   
  6.           
  7. >>> x=Bunch(age="54",address="Beijing")  
  8. >>> x.age  
  9. '54'  

由于它继承自dict类,我们可以自然而然获得大量相关内容,如对于相关键值/属性值的遍历,或者简单查询一个属性是否存在。

[python] view plain copy
 print?
  1. >>> T=Bunch  
  2. >>> t=T(left=T(left='a',right='b'),right=T(left='c'))  
  3. >>> t.left  
  4. {'left''a''right''b'}  
  5. >>> t.left.right  
  6. 'b'  
  7. >>> t['left']['right']  
  8. 'b'  
  9. >>> "left" in t.right  
  10. True  
  11. >>> "right"in t.right  
  12. False  


当您希望有一个灵活的对象,其属性可以从构造器中被动态设置时,也可以同样可以该模式实现。

可以很方便的创建一个对象。


摘自《Python算法教程》P34

原创粉丝点击