面向对象课件:https://book.apeland.cn/details/151/
面向对象视频:https://www.bilibili.com/video/av77282982?p=1
面向对象笔记目录:
2、面向对象(对象交互)类与类的关系、组合
7、面向对象(类方法、静态方法、属性方法) @classmethod @staticmethod @property
9、面向对象(类的双下划线方法)
10、面向对象(type动态创建类)
强化记忆:
类 | class FooBo: # 使用驼峰体规范 |
实例 | f = FooBo() # f就是实例 |
公共属性 | 直接写在class XXX: 下面的变量 |
构造方法 | __init__() |
实例属性 | __init__(self, a) 里面self.a = a |
方法 | 与__init__()平级的函数 |
依赖关系 | 在实例属性中定义 self.a = 另一个类的实例(实例是不带括号的) |
关联关系 | 再定义一个类,用来存储多个实例的关系 |
组合关系 | 在实例属性中定义 self.a = 另一个类(类名后面加括号) |
继承 | super(),多继承下的 mor() |
封装 | __公共属性,__self.属性,__方法 |
多态 | raise NotImplementedError("Subclass must implement abstract method") |
类方法 | @classmethod 只能访问类变量,不能访问实例变量 |
静态方法 | @staticmethod 不可以访问实例变量或类变量 |
属性方法 | @property 将方法变成一个静态属性(我理解为一个设定好的批处理) |
反射 | 通过字符串的形式操作对象相关的属性,4个方法 |
hasattr | 判断 |
getattr | 获取 |
setattr | 设立 |
delattr | 删除 |