一、抽象类
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: