当前位置: 首页 > news >正文

python学习 - 设计模式 - 组合模式

组合模式 Composite , 将对象组组合成树形结构以表示’部分-整体’ 的层次结构.组合模式使得用户对单个对象的组合对象的使用具有一致性

#!/usr/bin/python
# -*- coding:UTF-8 -*-
# @File    : d1.py
# @Software: PyCharm"""
组合模式 Composite , 将对象组组合成树形结构以表示'部分-整体' 的层次结构.组合模式使得用户对单个对象的组合对象的使用具有一致性
"""from abc import ABCMeta, abstractmethod# 组合的对象声明接口,在适当情况下,实现所有类共有接口的默认行为,声明一个接口用于访问和管理Component的子部件
class Compoente(object):pass__metaclass__ = ABCMetadef __init__(self, name):self.name = namedef Add(self, c): passdef Remove(self, c): passdef Display(self, deph): pass# 在组合中表示叶节点对象叶节点没有子节点
class Leaf(Compoente):pass# def __init__(self, name):#     self.name = self.namedef Add(self, c):print "不能添加下级节点"def Remove(self, c):print "不能删除下级节点"def Display(self, deph):passstrTemp = ""for i in range(deph):strTemp += strTemp + "-"print deph, self.name# 定义有枝节点的行为,用来储存子部件有关操作比如增加Add和Remove
class Composite(Compoente):passdef __init__(self, name):self.name = nameself.children = []def Add(self, comp):self.children.append(comp)def Remove(self,comp):passself.children.remove(comp)def Display(self, deph):strTemp = ""for i in range(deph):strTemp += strTemp + "-"print deph, self.nameif __name__ == '__main__':pass#生成树根root = Composite("这里是树根")root.Add("叶子1")root.Add("叶子2")root.Display(5)comp = Composite("Composite X")comp = ""
http://www.lryc.cn/news/382913.html

相关文章:

  • JavaScript倒序遍历数组:计算年度累积值
  • 华为仓颉编程语言观感
  • Elasticsearch:倒数排序融合 - Reciprocal rank fusion - 8.14
  • Day13—大语言模型
  • php基础语法_面向对象
  • 开源模型应用落地-LangChain高阶-LCEL-表达式语言(八)
  • c# 协议数据计算陀螺仪的角度,带符号
  • ArcGIS arcpy代码工具——批量要素裁剪栅格影像
  • discuz插件之优雅草超级列表互动增强v1.2版本更新
  • 三、用户中心项目笔记----后端多环境实战+原始部署
  • SpringMVC的使用
  • Vue73-命名路由
  • TrustOne发布一周年成绩单,15000家数智化转型客户的选择!
  • Nginx实战:故障处理_后端服务正常,nginx偶发502(Bad Gateway)
  • mac系统清理软件哪个好用?CleanMyMac X清理工具轻松拿捏mac
  • 拔掉独显提升性能,AMD新一代核显可以通杀主流游戏了
  • 关于单片机那些事?
  • 第5章 传输层
  • 典型传感器简介及驱动安装
  • linux和Win——显卡驱动、Anaconda及pytorch安装(无需单独安装cuda、cudnn)
  • 机器学习之多模态学习FLAVA(Foundational Language and Vision Alignment)
  • Maven高级-证书校验
  • flutter是app跨平台最优解吗?
  • 算法 Hw9
  • 前端JS必用工具【js-tool-big-box】学习,字符串字母大小写转换的方法使用
  • Zookeeper:分布式系统中的协调者
  • 如何使用代理IP进行数据抓取,PHP爬虫抓取京东商品数据
  • 一口气安装【Python】教程
  • 华为HCIP Datacom H12-821 卷13
  • 基于SSM的酒店客房管理系统