面向对象00P(Object Oriented Programming)
一、抽象
类(class):用来描述具有相同的属性和方法的对象的集合。它定义了集合中每个对象所共有的属性和方法
对象(object): 也称为类的实例,是一个具体存在的实体
class关键字
类的方法
1.1、实例方法
1.2、类方法
作用:可以操作类的详细信息
语法:@classmethod
访问:类名.类方法名(参数列表)
1.3、静态方法
不能/不需要访问类的数据
@staticmethod
二、封装 (Encapsulation)
2.1、概念
定义:
隐藏: 属性和实现细节,不允许外部直接访问;
暴露:公开方法,实现对内部信息的操作和访问;
作用:限制安全的访问和操作,提高数据安全性;可进行数据检查,从而有利于保证对象信息的完整性
2.2、实现
2.2.1 隐藏
保护属性:_属性名
私有属性:__属性名(被视作_类名_属性名)
2.2.2暴露
1、提供数据访问功能 (getter)
计算属性
语法:使用@property装饰器
调用:实例.方法名
2、提供数据操作功能 (setter)
语法: 使用@计算属性名.setter装饰器
调用:实例.方法名
三、继承 (Inheritance)
3.1定义
复用父类的公开属性和方法;拓展出新的属性和方法;
3.1.1、 实现
语法: class类名(父类列表);
默认父类是 object;
Python 支持多继承
3.2、类型检查
isinstance(实例, 类名)
检查对象是否是某个类及其派生类的实例
issubclass(类名1, 类名2)
检查类名 1 是否是类名 2 的子类
四、多态(Polymorphism)
4.1、概念
同名方法呈现多种行为
4.2、表现
4.3、多态与继承
方法重写(Override):子类的方法名称与父类的相同;
重写构造方法(子类调用父类方法)
super().init()
父类名.init(self)