Python-Bunch模式
“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模式相关推荐
- 译-在Python正则模式中search()和match()的区别是什么?
问:在Python正则模式中search()和match()的区别是什么? 我已经阅读了现有的相关文档,但是我总是记不住,碰到类似的问题,我还要不断地查找再学习,我希望某个大神能够给个清晰的案例,让我 ...
- python交互模式设置及VIM的tab补齐
一.python交互模式设置 Python 解释器具有简单的行编辑功能. 在 Unix 系统上,任何 Python 解释器都可能已经添加了 GNU readline 库支持,这样就具备了精巧的交互编辑 ...
- python策略模式包含角色_详解Python设计模式之策略模式
虽然设计模式与语言无关,但这并不意味着每一个模式都能在每一门语言中使用.<设计模式:可复用面向对象软件的基础>一书中有 23 个模式,其中有 16 个在动态语言中"不见了,或者简 ...
- python命令行模式和交互模式区别_对命令行模式与python交互模式介绍
命令行模式与python交互模式 1.在命令行模式下,可以执行 python 进入 Python 交互式环境,也可以执 行 python hello.py 运行一个.py 文件. 2.在 Python ...
- python交互模式什么意思_python交互模式是什么
命令行模式 在Windows开始菜单选择"命令提示符",就进入到命令行模式,它的提示符类似C:> Python交互模式 在命令行模式下敲命令python,就看到类似如下的一堆 ...
- python交互编程模式_进入python交互模式的方法
进入python交互模式的方法 发布时间:2020-08-01 09:57:35 来源:亿速云 阅读:63 作者:清晨 这篇文章主要介绍进入python交互模式的方法,文中介绍的非常详细,具有一定的参 ...
- Python ACM模式
Python ACM模式 告诉了有多少组数据 多组输入数据,但没指定多少组 输入一个整数告诉有多少组数据,再输入每组数据的具体值 多组数据,并告诉遇到怎么样的数据时结束(例如0 0) 多组数据,每组数 ...
- python交互模式如何撤回_在Python交互模式输入什么命令可以退回命令行模式
在Python交互模式输入什么命令可以退回命令行模式 答:exit() 根据危机的发生发展过程可将危机分为四个阶段.第二.三阶段分别是 答:常用的应对机制不能解决存在的问题,创伤性应激反应持续存在,生 ...
- python 文本模式读写文件时 不应使用 os.linesep 简介
os.linesep官方文档 The string used to separate (or, rather, terminate) lines on the current platform. Th ...
- python策略模式的应用_Head First 设计模式——策略模式(Strategy Pattern)——Python实现 | 学步园...
作者:liuyuan_jq 2011-06-13 策略模式定义 定义了 问题 J o e 上班的公司做了一套相当成功的模拟鸭子游戏: SimUDuck.游戏中会出现各种鸭子,一边游泳戏水,一边呱 呱叫 ...
最新文章
- 蚂蚁森林合种计划(2020.10.23,7天有效,每周更新)
- 加密保护软件 WinLicense 注册常见问题(一):许可证
- 100G光接口模式转换器
- 关于网页显示乱码问题的一些个人见解(PHP、JSP...)
- 超级计算机性能调查,调查:多数超级计算机使用Linux操作系统
- mysql 主键自增_mysql自增主键在大量删除后如何重新设置避免断层
- 北京内推 | 华为高斯实验室招聘AI算法工程师/实习生
- Redhat Ha Cluster -(转)
- python qt开发_Python 使用Qt进行开发(三)
- 平板电脑怎么投屏到电视上_学而思网课怎么投屏到电视上
- Matlab中一个很有用的函数:regionprops
- POJ2806 Square
- 匿名飞控代码解读汇总
- 牛人自述模拟电路学习历程
- win7 64位 安装Infragistics NetAdvantage,报Error 1606 Could Not Access Network Location %SystemDrive%/ine
- 弘辽科技:掌握淘宝直通车的工作原理很有必要!其核心是什么?
- 2020-04-09
- win10关闭自动更新
- 使用Robot Framework做接口测试
- html原生js实现图片轮播,原生JS实现图片轮播切换效果
热门文章
- Android Layout inflate过程分析(1)
- windows无法格式化u盘怎么办_U盘提示格式化怎么办 U盘提示格式化解决方法【详解】...
- python傅里叶变换 信号处理 序列_(十六)数字图像处理中的傅里叶(DFT/FFT)
- 2020中国汽车后市场白皮书
- 【csdn博客文章】导出备份
- Linux 系统编程-文件IO-文件描述符、open函数的使用、实现touch命令
- WPS-Word:下一页分节符不能分页,插入下一页分节符时下一节没有在新的一页开始
- 基于Android studio新闻阅读客户端app
- c++静态成员变量和静态成员方法
- DICOM影像中的窗宽窗位