Python03-面向对象00P(Object Oriented Programming)

image

面向对象00P(Object Oriented Programming)

一、抽象

类(class):用来描述具有相同的属性和方法的对象的集合。它定义了集合中每个对象所共有的属性和方法
对象(object): 也称为类的实例,是一个具体存在的实体

class关键字
image

类的方法

1.1、实例方法

1.2、类方法

作用:可以操作类的详细信息
语法:@classmethod
访问:类名.类方法名(参数列表)
image

1.3、静态方法

不能/不需要访问类的数据
@staticmethod
image

二、封装 (Encapsulation)

2.1、概念

定义:
隐藏: 属性和实现细节,不允许外部直接访问;
暴露:公开方法,实现对内部信息的操作和访问;
作用:限制安全的访问和操作,提高数据安全性;可进行数据检查,从而有利于保证对象信息的完整性

2.2、实现

2.2.1 隐藏

保护属性:_属性名
私有属性:__属性名(被视作_类名_属性名)

2.2.2暴露

1、提供数据访问功能 (getter)
计算属性
语法:使用@property装饰器
调用:实例.方法名
image

2、提供数据操作功能 (setter)
语法: 使用@计算属性名.setter装饰器
调用:实例.方法名
image

三、继承 (Inheritance)

3.1定义

复用父类的公开属性和方法;拓展出新的属性和方法;

3.1.1、 实现

语法: class类名(父类列表);
默认父类是 object;
Python 支持多继承
image
image

3.2、类型检查

isinstance(实例, 类名)
检查对象是否是某个类及其派生类的实例
issubclass(类名1, 类名2)
检查类名 1 是否是类名 2 的子类

四、多态(Polymorphism)

4.1、概念

同名方法呈现多种行为

4.2、表现

image

4.3、多态与继承

方法重写(Override):子类的方法名称与父类的相同;
重写构造方法(子类调用父类方法)
super().init()
父类名.init(self)