Python类的空间问题以及类之间的关系
类的空间问题
添加对象属性
1 |
|
在类外部添加(在类的外部通过万能的点进行类的属性的添加)
1 |
|
类的内部添加(引用内部的方法,在类的内部添加属性)
1 |
|
总结:对象的属性不仅可以在init里面添加,还可以在类的其他方法或者类的外面添加。
添加类的属性
1 |
|
总结:类的属性不仅可以在类内部添加,还可以在类的外部添加
对象如何找到类的属性
对象空间
产生这个对象空间,并有一个类对象指针
执行 init 方法,给对象封装属性
**对象查找属性的顺序:**先从对象空间找 ------> 类空间找 ------> 父类空间找 ------->…
**类名查找属性的顺序:**先从本类空间找 -------> 父类空间找--------> …
上面的顺序都是单向不可逆,类名不可能找到对象的属性。
类与类之间的关系
类与类中存在以下关系:
依赖关系
关联关系
组合关系
聚合关系
实现关系
继承关系(类的三大特性之一:继承。)
依赖关系
例:将大象装进冰箱,需要两个类, ⼀个是⼤象类, ⼀个是冰箱类
1 |
|
将大象类和冰箱类进行依赖
1 |
|
关联,聚合,组合关系
其实这三个在代码上写法是⼀样的. 但是, 从含义上是不⼀样的
关联关系. 两种事物必须是互相关联的. 但是在某些特殊情况下是可以更改和更换的
聚合关系. 属于关联关系中的⼀种特例. 侧重点是xxx和xxx聚合成xxx. 各⾃有各⾃的声明周期. 比如电脑. 电脑⾥有CPU, 硬盘, 内存等等. 电脑挂了. CPU还是好的. 还是完整的个体
组合关系. 属于关联关系中的⼀种特例. 写法上差不多. 组合关系比聚合还要紧密. 比如⼈的⼤脑, ⼼脏, 各个器官. 这些器官组合成⼀个⼈. 这时. ⼈如果挂了. 其他的东⻄也跟着挂了
关联关系
1 |
|
注意. 此时Boy和Girl两个类之间就是关联关系. 两个类的对象紧密联系着. 其中⼀个没有了. 另⼀个就孤单 的不得了. 关联关系, 其实就是 我需要你. 你也属于我
学校和老师之间的关系
1 |
|
但是学校也是依赖于老师的,所以老师学校应该互相依赖。
1 |
|
组合:将一个类的对象封装到另一个类的对象的属性中,就叫组合
例:设计一个游戏,让游戏里面的人物互殴
加上一个武器类,让人使用武器攻击
1 |
|
案例,循环回合制游戏
1 |
|