一、抽象类

  1、抽象类的定义:从一堆类中抽象出相同的内容,重新组成一个新的类,这样的类属于抽象类。

  2、香蕉类是一类水果,苹果类是一类水果,葡萄类是一类水果,但是他们都属于水果,从他们这些类中可以抽象出相同的部分都是属于水果类,这个水果类就属于抽象类。但是你永远无法吃到一个叫水果的对象,所以抽象类是不能被实例化的,他只能被别的类所继承,并且子类必须实现抽象方法。

  3、该抽象类主要和abc模块结合使用。(之前将的读和写)

  4、抽象类的本质还是类,指的是一组类的相似处,包括数据属性和函数属性,而接口只强调函数属性的相似度。二、多态

  1、什么是多态?

    多态指的是一类事物的多种形态,一个抽象类有多个子类,因而多态的概念依赖于继承。(水是个抽象类,他可以有水蒸气,泉水,冰等多种形态。)  

  2、序列类型有多种形态,分别是字符串,列表,元组,因此他们都遵循这个序列类型抽象类的使用方法,可以通过索引取值可以分片等。

三、多态性

  1、什么是多态性?

    多态性是指具有不同功能的函数或对象可以使用相同的函数名,这样就可以使用相同的函数名来调用不同功能的函数了。如图所示:

    

  2、多态性分为静态多态性和动态多态性两种。

    静态多态性:任何序列类型的数据都可以通过+来运算

    

    动态多态性:如图一所示

  3、多态性是指就是一个函数实现不同函数或对象的功能。

  4、多态性的好处?

    4.1增长了程序的灵活性,以不变应万变,无论对象怎么变化我们都可以以同一形式去调用它。

    4.2增长了程序的可扩展性,使用者可以创建一个新的对象,但是调用的方式却不会发生变化。四、绑定方法与非绑定方法

  1、类中定义的函数分为两大类,一种是有绑定方法的函数,一种是没有绑定方法的函数。

  2、有绑定方法的函数

    2.1绑定到对象的方法:类中定义的函数属性默认都是绑定到对象上的,绑定给谁,被绑定者来调用就自动将他本身当作

   第一个参数传进去。

    2.2绑定到类的方法:在类中用classmethod装饰器装饰的函数都是绑定到类上的。不管是类调用还是对象调用都会自动将类

   当作第一个参数,自动传入。

  3、非绑定方法的函数。

    类中的函数用staticmethod装饰器装饰的函数都是么有被绑定的。对象和类都可以调用它,但是不会自动传值。

  4、eg:

  

    

python基础18 ---多态与绑定方法的更多相关文章

  1. python 面向对象之多态与绑定方法

    多态与多态性 一,多态 1,多态指的是一类事物有多种形态(python里面原生多态) 1.1动物有多种形态:人,狗,猪 import abc class Animal(metaclass=abc.AB ...

  2. python基础之封装与绑定方法

    封装 1.什么是封装: 封:属性对外隐藏,但对内开放 装:申请一个名称空间,往里装入一系列名字/属性 2.为什么要封装: 封装数据属性:不让外部使用者直接使用数据,需要类内部开辟一个接口,让外部通过接 ...

  3. 十八. Python基础(18)常用模块

    十八. Python基础(18)常用模块 1 ● 常用模块及其用途 collections模块: 一些扩展的数据类型→Counter, deque, defaultdict, namedtuple, ...

  4. python基础之序列类型的方法——字符串方法

    python基础之序列类型的方法--字符串方法 Hello大家好,我是python学习者小杨同学,经过一段时间的沉淀(其实是偷懒不想更新),我终于想起了自己的博客账号,所以这次带来的是序列方法的后半部 ...

  5. Python基础(17)_面向对象程序设计(抽象类、继承原理、封装、多态,绑定方法)

    一.抽象类 抽象类是一个特殊的类,它的特殊之处在于只能被继承,不能被实例化 1.在python中实现抽象类 import abc #利用abc模块实现抽象类 class All_file(metacl ...

  6. python基础之多态与多态性、绑定方法和非绑定方法

    多态与多态性 多态 多态并不是一个新的知识 多态是指一类事物有多种形态,在类里就是指一个抽象类有多个子类,因而多态的概念依赖于继承 举个栗子:动物有多种形态,人.狗.猫.猪等,python的序列数据类 ...

  7. python 3 属性查找与绑定方法

    1.属性查找 类有两种属性:数据属性和函数属性 (1)类的数据属性是所有对象共享的 #类的数据属性是所有对象共享的,id都一样 class OldboyStudent: school='oldboy' ...

  8. python 封装,隐藏属性,绑定方法classmethod和staticmethod

    [封装] 隐藏对象的属性和实现细节,仅对外提供公共访问方式. [好处] 1. 将变化隔离: 2. 便于使用: 3. 提高复用性: 4. 提高安全性: [封装原则] 1. 将不需要对外提供的内容都隐藏起 ...

  9. python中类与对象及其绑定方法的定义

    面向对象编程 什么是面向对象? 面向过程:将需要解决的问题按步骤划分,一步一步完成每一个步骤,而且          步骤之间有联系. 优点:复杂问题可以分步完成 缺点:扩展性很差,维护性差.如果中间 ...

随机推荐

  1. Hadoop最大值的算法中出现的错误(strToDouble)

    错误信息: Exception in thread "main" java.lang.NumberFormatException: For input string: " ...

  2. iOS使用自己定义字体

    1.加入相应的字体(.ttf或.odf)到project的resurce,比如my.ttf. 2.在info.plist中加入一项 Fonts provided by application (ite ...

  3. mysql :安装过程中的问题

    安装mysql  选择路径的问题 出现如下问题:说明之前安装过mysql,写在的不干净

  4. 操作LOG文件-删除log目录下,所有的空文件-删除5天前的文件

    # 1.logs目录下,有一部分文件是空的# 1.删除log目录下,所有的空文件# 2.删除5天前的文件 # 需求分析:# 1.os.walk()获取到所在以.log结尾的文件# 2.判断文件的大小, ...

  5. &&与&符号区别

    http://topic.csdn.net/u/20080915/16/f5125300-f69f-4da8-9c3a-a7458590553f.html && 与 &区别: ...

  6. Android SDK Manager 下载SDK失败的解决办法

    摘要:本文记录了无法使用Android SDK  Manager下载SDK开发包的解决办法. 最近需要进行android应用程序的开发工作,在android官网下载了adt-bundle-linux- ...

  7. Docker iptables failed: iptables -t nat -A DOCKER -p tcp

    Dokcer网络问题 因为操作或修该过iptables导致docker容器出现如下错误: [root@mysqlserver ~]# docker restart cvnavi-centos-tomc ...

  8. rsync断点续传

    这经常是我们所说的镜像同步就是这么来的,如果断点续传呢?rsync完全可以做到这一点.man手册再次告诉我们: --partial      By default, rsync will delete ...

  9. cadence allegro pcb模块设计复用

    cadence allegro pcb模块设计复用 转载▼ 标签: 复用 模块 原理图 元件 文件 杂谈 分类: PCB技术 在你遇到如上图所示的dsp阵列PCB时,如果你的layout软件支持模块复 ...

  10. java之数字彩虹雨

    © 版权声明:本文为博主原创文章,转载请注明出处 数字彩虹雨: 从上至下,随机出现一串字符串,以不同的速度运行到底部:类似于黑客帝国里面的场景 GitHub:https://github.com/Ta ...