一、抽象类

  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. python数据类型整理

    Python中常见的数据结构可以统称为容器(container).序列(如列表和元组).映射(如字典)以及集合(set)是三类主要的容器. 一.序列(列表.元组和字符串) 序列中的每个元素都有自己的编 ...

  2. c#关于int(或其他类型)的字段在对象初始化时默认初始化问题的解决方法

    问题: c#的wcf服务接口在后台通过自定义对象接收前台参数的时候,前台参数即使不传int类型的字段值,后台也会默认初始化为0,由于很多表示状态的int字段都是从0开始的,导致查询的时候有些不想参与查 ...

  3. TCP是如何保证包的顺序传输

    转自:http://blog.csdn.net/ggxxkkll/article/details/7894112 大家都知道,TCP提供了最可靠的数据传输,它给发送的每个数据包做顺序化(这看起来非常烦 ...

  4. vi/vim复制粘贴命

    1. 选定文本块.使用v进入可视模式,移动光标键选定内容. 2.复制的命令是y,即yank(提起) ,常用的命令如下:     y      在使用v模式选定了某一块的时候,复制选定块到缓冲区用:   ...

  5. amchart 图表设置

    官网:https://www.amcharts.com/demos/ 属性介绍:https://docs.amcharts.com/3/javascriptcharts/AmLegend 安装 bow ...

  6. oracle浅析导致数据库性能问题的常见原因

    ㈠ 不合理的大表全表扫描 详见:点击打开链接 v$session_longops视图记录了超过6秒的所有SQL语句        这其中绝大部是全表扫描的语句! ㈡ 语句共享性不好 常出没在OLTP, ...

  7. android Webview 实现js调用java代码实现Activity跳转

    今天有了一个需求,在android里webview加载的html页面,要求点击html页面的按钮实现Activity的跳转. 咱是是菜鸟,webview的接触不多,于是就和度娘来了次亲密接触.在其中也 ...

  8. Hadoop之MapReduce的两种任务模式

    http://qianshangding.iteye.com/blog/2259421 Hadoop之MapReduce的两种任务模式

  9. ThinkPHP3.1URL分发BUG修正

    请先留意以下PHP脚本 PHP脚本A(http://127.0.0.1:8110/test.php): $url = 'http://127.0.0.1:8110/demo.php'; //curl请 ...

  10. iOS系列译文:自定义Collection View布局

    原文出处: Ole Begemann   译文出处: 黄爱武(@answer-huang).欢迎加入技术翻译小组. UICollectionView在iOS6中第一次被介绍,也是UIKit视图类中的一 ...