day 21
组合
组合是指的是一个对象中的属性,时另一个对象.
组合的目的和继承一样,为了减少代码冗余
封装
封装指的是把一堆属性(特征与技能)封装到一个对象中.
存数据的目的是为了取,对象可以对象"."属性的方式获取属性.
访问机制
在类内部定义,凡是以_开头的数据属性与方法属性,都会被python内部隐藏起来,让外部不能"直接"访问内部的__开头的属性
一推隐藏的属性与不能被外部轻易访问的属性,可以隐藏起来,不被外部直接调用.
property
定义:python内置的装饰器,主要是给内部的方法使用.
在对象调用某个方法时,将对象,方法()变成对象.方法(看起来像一个普通的数据类型)obj.bim() == obj.bmi
使用方法
@property
def 内部的方法(self)
多态
定义:多态指的是一类事物有多种形态
例如:
动物有多种形态:人,狗,猪
import abc
class animal(metaclass=abc.ABCMeta):
@abc.abstractmethod
def talk(self)
pass
class People(A
nimal):
def talk(self):
print('say hello')
class Dog(Animal):
def talk(self):
print('say wangwang')
class Pig(Animal):
def talk(self):
print('say aoao')
文件有多种形态:文本文件,可执行文件
import abc
class file(metaclass=abc.ABCCMeat):
@abc.abcstractmethod
def click(self):
pass
class Text(file):
def click(self):
peint('openn file')
class ExeFile(File):
def click(self):
print('excute file')
目的:
多态的目的是为了,让多种不同类型的对象,在使用相同功能的情况下,调用同一个名字的方法名.
父类:定义一套统一的标准.
子类:遵循父类的统一标准.
如何实现:
---继承父类
---继承抽象类
---鸭子类型
抽象类的目的
强制子类必须遵循父类的一套标准.
鸭子类型
在不知道当前对象是何物的情况下,但是你得长得像鸭子,那么你就是鸭子类型
继承:
耦合性太高,程序的可扩展性差
鸭子类型:
耦合度低,程序的可扩展性强
day 21的更多相关文章
- 【夯实Mysql基础】MySQL性能优化的21个最佳实践 和 mysql使用索引
本文地址 分享提纲: 1.为查询缓存优化你的查询 2. EXPLAIN 你的 SELECT 查询 3. 当只要一行数据时使用 LIMIT 1 4. 为搜索字段建索引 5. 在Join表的时候使用相当类 ...
- 2-1 Linux 操作系统及常用命令
根据马哥linux初级视频 2-1.2-2来编辑 1. GUI与CLI GUI: Graphic User Interface CLI: Command Line Interface 注:在Windo ...
- Fedora 21 安装 Nvidia 驱动以及失败后的补救方法
在 Linux 桌面系统下玩了这么久,大部分时间都是使用 Ubuntu,偶尔使用一下 Fedora.我的电脑中安装有多个 Linux 发行版,见这里<在同一个硬盘上安装多个Linux发行版及Fe ...
- 在同一个硬盘上安装多个 Linux 发行版及 Fedora 21 、Fedora 22 初体验
在同一个硬盘上安装多个 Linux 发行版 以前对多个 Linux 发行版的折腾主要是在虚拟机上完成.我的桌面电脑性能比较强大,玩玩虚拟机没啥问题,但是笔记本电脑就不行了.要在我的笔记本电脑上折腾多个 ...
- CSharpGL(21)用鼠标拾取、拖拽VBO图元内的点、线或本身
CSharpGL(21)用鼠标拾取.拖拽VBO图元内的点.线或本身 效果图 以最常见的三角形网格(用GL_TRIANGLES方式进行渲染)为例. 在拾取模式为GeometryType.Point时,你 ...
- ABP(现代ASP.NET样板开发框架)系列之21、ABP展现层——Javascript函数库
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之21.ABP展现层——Javascript函数库 ABP是“ASP.NET Boilerplate Project ...
- C#开发微信门户及应用(21)-微信企业号的消息和事件的接收处理及解密
在上篇随笔<C#开发微信门户及应用(19)-微信企业号的消息发送(文本.图片.文件.语音.视频.图文消息等)>介绍了有关企业号的消息发送,官方特别声明消息是不用加密发送的.但是在回调的服务 ...
- 【转】MySQL性能优化的最佳21条经验
文章转自: http://blog.csdn.net/waferleo/article/details/7179009 今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关 ...
- HTTP 错误 500.21 - Internal Server Error 解决方案
不久前重新安装了Windows7,在安装了VS2010 开发平台之后,将网站发布到IIS,访问发生如下错误: HTTP 错误 500.21 - Internal Server Error处理程序“Ni ...
- swift与OC之间不得不知道的21点
swift与OC之间不得不知道的21点 自6月的WWDC大会上由苹果的大神Chris Lattner向我们首次展示swift至今已经大半年时间了,虽然绝大部分软件公司代码里还都见不到一丁点swif ...
随机推荐
- DELPHI GDI + TGPFont UnitPixel 问题解决
查不少资料,在 GPfont := TGPFont.Create(fontFamily, Font.Size , FontStyleRegular,UnitPixel ); 时,显示的字体,并不是按D ...
- 2018 Multi-University Training Contest 2(部分题解)
Game Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- Spring Cloud(二):服务消费者
创建“服务消费者” 创建一个基础的Spring Boot工程,命名为springboot-consumer,并在pom.xml中引入需要的依赖内容: <dependency> <gr ...
- FreeSql (三十四)CodeFirst 迁移说明
FreeSql 支持 CodeFirst 迁移结构至数据库,这应该是(O/RM)必须标配的一个功能. 与其他(O/RM)不同FreeSql支持更多的数据库特性,而不只是支持基础的数据类型,这既是优点也 ...
- 4.12号HTML、CSS
HTML 表单元素: 多行文本域<textarea> 标签定义多行的文本输入控件.文本区中可容纳无限数量的文本,其中的文本的默认字体是等宽字体(通常是 Courier).可以通过 cols ...
- Escape (BFS + 模拟)
Problem Description The students of the HEU are maneuvering for their military training. The red arm ...
- thinkphp6.0 集成Alipay 手机和电脑端支付的方法
本文由 BI8EJM 原创,转载请注明出处! 第一步 下载 Alipay 的PHP SDK :https://docs.open.alipay.com/54/103419/ 第二步 解压下载都到的压 ...
- 05:videoToolbox:硬解码
videoToolbox:硬解码 前言:VTDecompressionSession 工作流程: 1:创建解压的会话. 2:配置会话属性. 3:解压视频帧数据. 4:释放会话.释放资源. 介绍 VT ...
- 构建企业级数据湖?Azure Data Lake Storage Gen2实战体验(中)
引言 相较传统的重量级OLAP数据仓库,“数据湖”以其数据体量大.综合成本低.支持非结构化数据.查询灵活多变等特点,受到越来越多企业的青睐,逐渐成为了现代数据平台的核心和架构范式. 因此数据湖相关服务 ...
- 第六届蓝桥杯java b组第十题
10.压缩变换(程序设计) 小明最近在研究压缩算法. 他知道,压缩的时候如果能够使得数值很小,就能通过熵编码得到较高的压缩比. 然而,要使数值很小是一个挑战. 最近,小明需要压缩一些正整数的序列,这些 ...