“Bunch”设计模式:

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

>>> class Bunch(dict):def __init__(self,*args,**kwds):super(Bunch,self).__init__(*args,**kwds)self.__dict__=self>>> x=Bunch(age="54",address="Beijing")
>>> x.age
'54'

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

>>> T=Bunch
>>> t=T(left=T(left='a',right='b'),right=T(left='c'))
>>> t.left
{'left': 'a', 'right': 'b'}
>>> t.left.right
'b'
>>> t['left']['right']
'b'
>>> "left" in t.right
True
>>> "right"in t.right
False

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

摘自《Python算法教程》P34

Python-Bunch模式相关推荐

  1. 译-在Python正则模式中search()和match()的区别是什么?

    问:在Python正则模式中search()和match()的区别是什么? 我已经阅读了现有的相关文档,但是我总是记不住,碰到类似的问题,我还要不断地查找再学习,我希望某个大神能够给个清晰的案例,让我 ...

  2. python交互模式设置及VIM的tab补齐

    一.python交互模式设置 Python 解释器具有简单的行编辑功能. 在 Unix 系统上,任何 Python 解释器都可能已经添加了 GNU readline 库支持,这样就具备了精巧的交互编辑 ...

  3. python策略模式包含角色_详解Python设计模式之策略模式

    虽然设计模式与语言无关,但这并不意味着每一个模式都能在每一门语言中使用.<设计模式:可复用面向对象软件的基础>一书中有 23 个模式,其中有 16 个在动态语言中"不见了,或者简 ...

  4. python命令行模式和交互模式区别_对命令行模式与python交互模式介绍

    命令行模式与python交互模式 1.在命令行模式下,可以执行 python 进入 Python 交互式环境,也可以执 行 python hello.py 运行一个.py 文件. 2.在 Python ...

  5. python交互模式什么意思_python交互模式是什么

    命令行模式 在Windows开始菜单选择"命令提示符",就进入到命令行模式,它的提示符类似C:> Python交互模式 在命令行模式下敲命令python,就看到类似如下的一堆 ...

  6. python交互编程模式_进入python交互模式的方法

    进入python交互模式的方法 发布时间:2020-08-01 09:57:35 来源:亿速云 阅读:63 作者:清晨 这篇文章主要介绍进入python交互模式的方法,文中介绍的非常详细,具有一定的参 ...

  7. Python ACM模式

    Python ACM模式 告诉了有多少组数据 多组输入数据,但没指定多少组 输入一个整数告诉有多少组数据,再输入每组数据的具体值 多组数据,并告诉遇到怎么样的数据时结束(例如0 0) 多组数据,每组数 ...

  8. python交互模式如何撤回_在Python交互模式输入什么命令可以退回命令行模式

    在Python交互模式输入什么命令可以退回命令行模式 答:exit() 根据危机的发生发展过程可将危机分为四个阶段.第二.三阶段分别是 答:常用的应对机制不能解决存在的问题,创伤性应激反应持续存在,生 ...

  9. python 文本模式读写文件时 不应使用 os.linesep 简介

    os.linesep官方文档 The string used to separate (or, rather, terminate) lines on the current platform. Th ...

  10. python策略模式的应用_Head First 设计模式——策略模式(Strategy Pattern)——Python实现 | 学步园...

    作者:liuyuan_jq 2011-06-13 策略模式定义 定义了 问题 J o e 上班的公司做了一套相当成功的模拟鸭子游戏: SimUDuck.游戏中会出现各种鸭子,一边游泳戏水,一边呱 呱叫 ...

最新文章

  1. 蚂蚁森林合种计划(2020.10.23,7天有效,每周更新)
  2. 加密保护软件 WinLicense 注册常见问题(一):许可证
  3. 100G光接口模式转换器
  4. 关于网页显示乱码问题的一些个人见解(PHP、JSP...)
  5. 超级计算机性能调查,调查:多数超级计算机使用Linux操作系统
  6. mysql 主键自增_mysql自增主键在大量删除后如何重新设置避免断层
  7. 北京内推 | 华为高斯实验室招聘AI算法工程师/实习生
  8. Redhat Ha Cluster -(转)
  9. python qt开发_Python 使用Qt进行开发(三)
  10. 平板电脑怎么投屏到电视上_学而思网课怎么投屏到电视上
  11. Matlab中一个很有用的函数:regionprops
  12. POJ2806 Square
  13. 匿名飞控代码解读汇总
  14. 牛人自述模拟电路学习历程
  15. win7 64位 安装Infragistics NetAdvantage,报Error 1606 Could Not Access Network Location %SystemDrive%/ine
  16. 弘辽科技:掌握淘宝直通车的工作原理很有必要!其核心是什么?
  17. 2020-04-09
  18. win10关闭自动更新
  19. 使用Robot Framework做接口测试
  20. html原生js实现图片轮播,原生JS实现图片轮播切换效果

热门文章

  1. Android Layout inflate过程分析(1)
  2. windows无法格式化u盘怎么办_U盘提示格式化怎么办 U盘提示格式化解决方法【详解】...
  3. python傅里叶变换 信号处理 序列_(十六)数字图像处理中的傅里叶(DFT/FFT)
  4. 2020中国汽车后市场白皮书
  5. 【csdn博客文章】导出备份
  6. Linux 系统编程-文件IO-文件描述符、open函数的使用、实现touch命令
  7. WPS-Word:下一页分节符不能分页,插入下一页分节符时下一节没有在新的一页开始
  8. 基于Android studio新闻阅读客户端app
  9. c++静态成员变量和静态成员方法
  10. DICOM影像中的窗宽窗位