复习

1.继承
表示什么是什么的关系
1.单继承
1.先抽象,再继承
2.子类没有的名字,调用父类
3.类中使用self,看清楚self指向谁
2.多继承
1.新式类和经典类
1.新式类:广度优先
经典类:深度优先
2.新式类中,使用mro查看继承顺序
使用super查找父类,按照mro顺序(python3)

学习内容

1.接口类
1.源自java; python原生不支持
2.支持多继承,接口类中的所有方法都必须不能实现——来自java习惯
3.接口隔离原则:
使用多个专门的接口,而不使用单一的总接口。即客户端不应该依赖那些不需要的接口。
4.规范类,需要某项功能,就继承某些类,规范使用相应功能
2.抽象类:
1.python原生支持
2.不支持多继承,抽象类中方法可以有一些代码的实现——java习惯
3.规范
单继承,能实现的功能都是一样的,所以在父类中可以有一些简单的基础
多继承,由于功能复杂,所以不容易抽象出相同的功能具体实现写在父类中
接口类和抽象类不能实例化
3.多态
1.python 天生支持多态
python 动态强类型语言
python 不崇尚根据继承所的来的相似
只是自己实现自己的代码
如果两个类相似,并不产生父类的子类的兄弟关系,而是鸭子类型
list tuple 通过代码,而非继承得来的,相似
优点:松耦合,每个相似的类之间没有影响
缺点:太随意
2.多态:一类事物有多种形态
4.封装
1.广义上面向对象封装:代码保护
面向对象的思想本身就是一种只让自己的对象能调用自己类中的方法
2.狭义上的封装——面向对象的三大特性之一
属性和方法放进黑箱
3.私有
对象的私有属性
类中的私有方法
类中的静态私有属性
所有的私有,都不能在类的外面调用

from abc import abstractclassmethod, ABCMeta
# 规范子类
class Payment(metaclass=ABCMeta):
@abstractclassmethod
def pay(cls,money):pass class Wechat(Payment):
def pay(self,money):
print('s')
c = Wechat() print(1>0<0)

python之路——25的更多相关文章

  1. 【python之路25】正则表达式

    一.正则表达式简介 就其本质而言,正则表达式(或RE)是一种小型的.高度专业化的(在python中),它内嵌在python中,并通过RE模块实现.正则表达式编译成一系列字节码,然后由用C编写的匹配引擎 ...

  2. Python之路【第十九篇】:爬虫

    Python之路[第十九篇]:爬虫   网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用 ...

  3. Python之路【第十八篇】:Web框架们

    Python之路[第十八篇]:Web框架们   Python的WEB框架 Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Pytho ...

  4. Python之路【第十七篇】:Django【进阶篇 】

    Python之路[第十七篇]:Django[进阶篇 ]   Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接 ...

  5. Python之路【第十五篇】:Web框架

    Python之路[第十五篇]:Web框架   Web框架本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. 1 2 3 4 5 6 ...

  6. Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

    Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy   Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用 ...

  7. Python之路【第八篇】:堡垒机实例以及数据库操作

    Python之路[第八篇]:堡垒机实例以及数据库操作   堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient ...

  8. Python之路【第七篇】:线程、进程和协程

    Python之路[第七篇]:线程.进程和协程   Python线程 Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元. 1 2 3 4 5 6 7 8 9 10 11 12 1 ...

  9. Python之路【第五篇】:面向对象及相关

    Python之路[第五篇]:面向对象及相关   面向对象基础 基础内容介绍详见一下两篇博文: 面向对象初级篇 面向对象进阶篇 其他相关 一.isinstance(obj, cls) 检查是否obj是否 ...

随机推荐

  1. esLint 配置

    默认eslint规则: 代码末尾不能加分号 ;(强迫症的我受不了)代码中不能存在多行空行:(这个我更也忍不了)tab键不能使用,必须换成两个空格:(超级不习惯)代码中不能存在声明了但未使用的变量:(这 ...

  2. sourcetree 修改文件后提交上去,文件丢失

    提交sourcetree 修改后,图片资源提交上去了,json文件没提交上去,原因是本地finder隐藏文件.gitignore_global中把一些文件类型都隐藏了不让提交. 具体使用default ...

  3. tcpdump 交叉编译

    1下载源码:http://www.tcpdump.org/release/ libpcap-1.4.0.tar.gz tcpdump-4.4.0.tar.gz export PATH=/opt_gcc ...

  4. sqlite当天时间的23:59:59

    select strftime('%Y-%m-%d %H:%M:%S','now','+1 day','localtime','start of day','-1 seconds')

  5. Codeforces1100F. Ivan and Burgers(离线+线性基)

    题目链接:传送门 思路: 按查询的右端点离线. 然后从左到右维护线性基. 每个基底更新为最右边的方案,可以让尽量多的查询享受到这个基底. 用ci维护后更新右端点为i的答案. 代码(析构1000ms,别 ...

  6. Vue源码之目录结构

    Vue版本:2.6.9 源码结构图 ├─ .circleci // 包含CircleCI持续集成/持续部署工具的配置文件 ├─ .github // 项目相关的说明文档,上面的说明文档就在此文件夹 ├ ...

  7. ewfwefwefe

    qwdefwef fwefwef

  8. 赋值,什么时候用value,什么时候用innerText

    赋值语句: window.document.getElementById('limittime').value='${date}' window.document.getElementById('li ...

  9. ECharts 从后台动态获取数据 (asp.net)

    (一) 使用工具 visual studio 2017:Web开发:asp.net (代码中的js引用路径以及ajax方法调用的url,记得修改哦) (二) 准备工作(此处写给和我一样小白) 1.动态 ...

  10. win10 uwp 读取resw资源文件

    ResourceContext resourceContext = ResourceContext.GetForViewIndependentUse(); ResourceMap resourceMa ...