Python面向对象思维导图
- 格式:pdf
- 大小:498.82 KB
- 文档页数:1
如何使用Python做出思维导图首先,Python是一种跨平台的计算机程序设计语言。
是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。
其次,思维导图,英文是The Mind Map,又叫心智导图,是一种形象的展示各级隶属关系的图形,它具有较强的逻辑性和可视性,能够帮助理清工作思路。
那么,当我们想要通过Python画出思维导图,具体要怎么操作呢?下面将讲述如何用pyecharts画思维导图。
一、基本思维导图from pyecharts import options as optsfrom pyecharts.charts import Treedata = [{"name": "python变量","children": [{"name": "字符串","children": [{"name": "实例1:'abc'"}, {"name": "实例2:'123abc'"}]},{"name": "列表","children": [{"name": "实例1:[a,b,c]"}, {"name": "实例2:'[1,2,3]"}]},{"name": "字典","children": [{"name": "实例1:{1:'a','2':'b'}}"}, {"name": "实例2:'{a:[1,2,3],'2':(1,2))}"}]},{"name": "元组","children": [{"name": "实例1:(1,2,3)}"}, {"name": "实例2:(a,b,c)"}]}]}]c = (Tree().add("", data))c.render_notebook()整个数据是1个列表,列表内只有1个字典元素,字典以“name”为键的值为思维导图的起点,以“children”为键的值为name的下一节点,其值仍为列表格式,依次类推。
Python设计模式-UML-类图(ClassDiagram)简介类图是⾯向对象分析和设计的核⼼,⽤来描述系统各个模块中类与类之间、接⼝与接⼝之间、类与接⼝之间的关系,以及每个类的属性、操作等特性,⼀般在详细设计过程中实施。
类图本⾝就是现实世界的抽象,是对系统中各种概念进⾏建模,并描绘出它们之间的关系,所以类图关注的对象就是元素及元素之间的关系。
类图建模步骤 - 抽象出类实体 - 识别出类的主要属性 - 画出类之间的关系 - 对各个类进⾏分析、梳理、设计类图的元素类图中包含以下⼏种模型元素:类、接⼝、关系、协作、注释、约束、包。
类 在UML的图形表⽰中,类的表⽰法是⼀个矩形,有三格组成,分别是类名、类属性、类操作。
抽象类中的类名及抽象⽅法都⽤斜体表⽰。
- 类名:⾸字母⼤写 - 类属性:格式为可见性属性名:类型 =默认值,如-name: String 可见性包括四种: + public - private # protected * package 属性名:单字属性名⼩写;多字属性名出第⼀个单词外其余单词的⾸字母⼤写 - 类操作:格式为可见性操作名(参数):返回值类型,如+getName(): String接⼝ 在UML的图形表⽰中,接⼝的表⽰法是分为两种:圆形表⽰法和构造型表⽰法。
接⼝由两栏组成,第⼀栏顶端是接⼝名称,第⼆栏是接⼝⽅法。
接⼝⽆属性只包含操作,且没有对外可见的关联。
- 圆形表⽰法 - 构造型表⽰法关系类图中类与类之间有泛化、依赖、关联、聚合、组合关系;接⼝与接⼝之间有继承关系;类与接⼝之间有实现关系。
这些关系本⾝就是类图中的元素,⽤不同的连线表⽰。
- 泛化关系 - 依赖关系 - 关联关系 - 聚合关系 - 组合关系 - 实现关系 类图中的关系较为复杂,以下分别详述。
协作 协作是指⼀些类、接⼝、关系等元素提供的交互⾏为,能够协助其他元素执⾏活动、实现功能的辅助类。
注释 对某些类和接⼝进⾏注释。
面向对象编程基本概念OOPobject-oriented programming 核心思想相近对象(Object),归为类(Class)设计思想抽象出Class根据Class创建lnstance三大特点数据封装继承多态主要目的提高程序的重复使用性vs面向对象分类把【对象】作为程序的基本单元一个对象包含了数据操作【数据】的函数特点一组【对象】的集合每个【对象】都可以接收/处理其他【对象】发过来的消息面向过程依次执行语句特点一系列命令的集合一组函数的顺序执行把大块函数切割成小块函数降低系统的复杂度类变量vs实例变量类变量定义在【类】中且在【函数体】之外特点在这个类的所有【实例】之间共享通常不作为【实例变量】使用访问内部类or外部类className.classVar实例变量定义在【方法】中只作用于当前实例的类数据成员类变量&实例变量用于处理类及其实例对象相关的数据方法类中定义的【函数】结构基本结构class创建【类】class ClassName(bases): 'class document string' class_suiteClassName 【类名】通常是大写开头的单词bases一或多个用于继承的【父类】的集合object本身所有类最终都会继承的类class document string'ClassName.__doc__类的文档字符串class_suite组成类成员方法数据属性类下有属性attribute类下定义的变量命名名词方法method类下定义的函数实现了数据封装调用时直接操作对象内部的数据无需知道方法内部的实现细节命名动词+对象第一个参数self必须有为了方便引用对象自身性质object创建实例对象summer=Bird()summer是个对象且属于Bird属性的引用summer.have_feather 方法的引用summer.move(x,y)类属性分类数据属性可以添加,删除,修改方法内置(特殊)类属性ClassName.__name__类名直接运行__main__作为导入模块导入模块名__doc__类的文档字符串__bases__所有【父类】构成的元组__dict__属性__module__类定义所在的模块__class__对应的类__init__(self,…)特殊方法称为类的初始化方法/构造函数用于初始化创建【实例对象】时会自动调用强制绑定属性self定义【类的方法】时永远的【第一个】参数表示【创建的实例】本身把各种属性绑定到self继承与多态子类→父类/基类/超类继承方法类定义时括号里父类名字要继承object说明没有父类目的代码的重用通过【继承】享有了【父类的属性】特点基类的__init__()不会被自动调用需要在派生类的__init__()专门调用调用基类的方法加上基类的【类名前缀】带上self参数变量调用的方法先在【本类】中查找找不到才去【基类】中找多重继承继承元组中列了一个以上的类多态定义一个class等同于定义一种【数据类型】在继承关系中一个实例的【数据类型】是某个【子类】or【父类】对于一个变量只需知道父类型无需确切知道子类型调用父类方法时作用对象由运行时该对象的确切类型决定【开闭】原则对【扩展】开放允许新增父类的子类对【修改】封闭不需要修改依赖父类的函数BIF布尔函数issubclass(sub,sup)Truesub是sup的子类/子孙类p.s.一个类是其自身的子类isinstance(obj,Class)Trueobj是【类Class(或其子类)】的一个实例Class可以是多个类的【元组】*attr()系列使用范围各种对象使用方法*attr(obj,'attr'…)系列BIFhasattr(obj,name)检查属性是否存在getattr(obj,name[,default])访问属性setattr(obj,name,value)设置一个属性不存在则新建delattr(obj,name)删除属性dir()获得一个对象的所有属性和方法super()获取相应【父类】vars()字典属性-值对象的性质区分类的属性所有属于该类的对象会共享这些属性对象的性质该对象的特别信息定义方法__init__()赋值给self.attributeself继而传递给各个方法通过引用self.attribute 查询或修改对象的性质访问限制私有变量变量名以__开头让内部属性不被外部访问如果需要获取内部属性增加方法def get_name(self):return self.__nameobject._className__attrName允许外部代码修改增加【方法】可以对参数做检查避免传入无效参数p.s.__xxx__特殊变量可以访问__x 私有变量不能访问_x不要随意访问可以访问总结类用来描述具有相同属性&方法【对象】的集合对象通过【类】定义的数据结构【实例】包括两个【数据成员】类变量实例变量方法实例化创建一个类的【实例】类的具体对象方法重写又称覆盖(override)如果从【父类】继承的【方法】不能满足【子类】的需求可以对其进行改写继承一个【派生类】继承【基类】的属性&方法derived classbase class允许把一个【派生类对象】作为一个【基类对象】对待is ap.s.运算符本质上是定义在【类内部的【特殊方法可自定义运算符根据目的修改对象运算。
Python思维导图汇总⽬录1 基础知识1.1 Python的应⽤⽅向和语⾔特点1.2 基本规则1.3 变量赋值1.4 计算机语⾔与运⾏Python1.5 特殊标识符1.6 Python对象2 数据类型2.1 类型2.2 标准类型2.2.1 标准数据类型2.2.2 标准类型操作符2.2.3 内建函数2.3 数值类型2.3.1 分类2.3.2 关系2.3.3 BIF(绝对值、四舍五⼊等)2.3.4 随机函数(易混淆)2.3.5 其他2.4 列表与元组(细讲)2.4.1 操作符(列表)2.4.2 内置函数(元组)2.4.3 元组2.4.4 拷贝问题2.5 字典2.5.1 操作2.5.2 BIF2.5.3 字典和列表的⽐较2.6 集合2.6.1 功能、分类、创建2.6.2 操作符2.6.3 BIF2.7 序列2.7.1 内涵2.7.2 操作符2.7.3 BIF3 函数3.1 概述3.1.1 定义3.1.2 注意3.2 参数3.2.1 完整语法3.2.2 位置参数和关键字参数3.2.3 匿名函数3.3 条件语句与循环语句3.3.1 条件语句3.3.2 循环语句3.3.3 循环控制3.3.4 相关BIF4 ⾯向对象4.1 概述4.2 类和对象4.2.1 ⾯向对象的⼏个特征4.2.2 类、类对象5 模块1 基础知识1.1 Python的应⽤⽅向和语⾔特点1.2 基本规则1.3 变量赋值1.4 计算机语⾔与运⾏Python 1.5 特殊标识符1.6 Python对象2 数据类型2.1 类型2.2 标准类型2.2.1 标准数据类型2.2.2 标准类型操作符2.2.3 内建函数2.3 数值类型2.3.1 分类2.3.2 关系2.3.3 BIF(绝对值、四舍五⼊等)2.3.4 随机函数(易混淆)2.3.5 其他2.4 列表与元组(细讲)2.4.1 操作符(列表)2.4.2 内置函数(元组)2.4.3 元组2.4.4 拷贝问题2.5 字典2.5.1 操作2.5.2 BIF2.5.3 字典和列表的⽐较2.6 集合2.6.1 功能、分类、创建2.6.2 操作符2.6.3 BIF2.7 序列2.7.1 内涵2.7.2 操作符2.7.3 BIF3 函数3.1 概述3.1.1 定义3.1.2 注意3.2 参数3.2.1 完整语法3.2.2 位置参数和关键字参数3.2.3 匿名函数3.3 条件语句与循环语句3.3.1 条件语句3.3.2 循环语句3.3.3 循环控制3.3.4 相关BIF4 ⾯向对象4.1 概述4.2 类和对象4.2.1 ⾯向对象的⼏个特征4.2.2 类、类对象(2)类和对象是什么关系:类和对象的关系就如同模具和⽤这个模具制作出的物品之间的关系。
P ython面向对象 面向对象入门33 课程简介17 面向对象与面向过程26 定义和使用类31 描述对象的特征26 让对象具有能动性24
深入类的属性33
面向对象开发实例11 通过组合来构建复杂的对象1
P ython 与设计模式例谈9 鸭子类型与多态 什么是多态
一种类型具有多种类型的能力
允许不同的对象对同一消息作出灵活的反应 以一种通用的方式对待可使用的对象 非动态语言必须通过继承和接口来实现 P ython 中的多态
通过继承实现多态(子类可以作为父类使用) 子类通过重载父类的方法实现多态 动态语言与鸭子类型 变量绑定的类型具有不确定性 函数和方法可以接受任何类型的参数 调用方法时不检查提供的参数类型
调用时是否成功由参数的方法和属性确定 调用不成功则抛出错误 P ython 中不用定义接口 多态的好处
可实现开放的扩展与修改的封闭
使Python 更具有灵活性 作业 1.通过继承前面课程作业中定义的盒子(Box )类
实现可以相加的盒子类,并定义一个调用让盒了可以相加
的函数。
2.通过鸭子类型定义一个杯子类,能够将其实例提供给上
题中的函数。
使得相加后得到一个容量为两个杯子类的实例容量之和的 杯子类实例。
类的继承与方法重载23 类的特殊方法46 类方法、静态方法36。