1.面向对象
(1) 类是模子, 确定对象将会拥有的特征(属性)和行为(方法)
(2) 对象是类的实例表现, 类是对象的类型
(3) 对象是特定类型的数据
(4) 属性: 对象具有的各种静态特征
(5) 方法: 对象具有的各种动态行为
类 是一个抽象的概念, 是一个模板
对象 是一个看得见、摸得着的具体实体
类>——实例化——>对象
2.封装
(1) 将类的某些信息隐藏在内部类, 不允许外部程序直接访问
(2) 通过该类提供的方法来实现对隐藏信息的操作的访问
也就是, 隐藏对象的信息, 同时留出访问的接口
特点: 1.只能通过规定的方法访问数据
2.隐藏类的实例细节, 方便修改和实现
3.继承
(1) 一种类于类之间的关系
(2) 使用已存在的类的定义作为基础建立新类
(3) 新类的定义可以增加新的数据或新的功能, 也可以用父类的功能,
但不能选择性地继承父类
(4) 判断是否为子类:
issubclass()
(5) 多重继承 : 若继承的父类有重名方法, 顺序调用中先调用的执行, 后调用的忽略
4.多态
意味着允许不同类的对象对同一消息做出不同的响应
实现的必要条件:
1.满足继承关系
2.需要方法的重写
5.类
(1) 类的特殊方法——构造函数
def init(self, name, *args, **kwargs) :
…
(2) 类的特殊方法——析构函数
(3) 私有变量: __xxx (两个下划线开头的表示私有变量) 无法直接更改、操作
(4) 类的实例鉴定:
–> isinstance(类名1, 类名2) --> True / False
6.类的高级特性
(1) 描述符 @property : 将类的方法当作属性来用
(2) slots: 1 为指定的类设置一个静态属性列表
2 为属性很少的类节约内存空间
(3) 静态方法 @staticmethod
(4) 类方法 @classmethod