类的空间问题
一 类的空间问题
1.1何处可以添加对象属性
class A:
def __init__(self,name):
self.name = name
def func(self,sex):
self.sex = sex
# 类外面可以
# obj = A('barry')
# obj.age = 18
# print(obj.__dict__)
# {'name': 'barry', 'age': 18}
#类里面也可以
obj = A('barry')
obj.func('男') # 函数传了参数进去呀
print(obj.__dict__)
# {'name': 'barry', 'sex': '男'}
对象的属性不仅可以在 init 里面添加,还可以在类的其他方法或者类的外面添加
1.2 何处添加类的静态属性
class A:
def __init__(self,name):
self.name = name
def func(self,sex):
self.sex = sex
def func1(self):
A.bbb = 'ccc'
# 类的外部可以添加
A.aaa = 'taibai'
print(A.__dict__)
# 类的内部也可以添加
# A.func1(111)
# print(A.__dict__)
总结 : 类的属性不仅可以在类的内部添加,还可以在类的外部添加
1.3 对象如何找到类的属性
通过之前的学习,实例化一个对象,可以通过点的方式找到类中的属性
对象查找属性的顺序:
先从对象空间找——>类空间找——>父类空间找———>
**类名查找属性的顺序 : **
先从本类空间找,类名不可能找到对象的属性
二 : 类与类之间的关系
在大千世界中,类与类存在以下关系:
- 依赖关系
- 关联关系
- 组合关系 : 给一个对象封装一个属性,属性值是另一个类的对象
- 聚合关系
- 实现关系
- 继承关系(类的三大特性之一 : 继承)
2.1 依赖关系:将一个类的的类名或者对象传入另一个类的方法中
首先,写出两个类,一个是大象类,一个是冰箱类