从空间角度研究类
- 对象操作对象属性
- 类名操作属性
- 对象取值顺序
- 类名取值顺序
address = '美丽富饶的沙河'
class A: def __init__(self, name): self.name = name def func(self): if self.name == 'dsb': self.skins = '吉利服' def func1(self): print(self.__dict__) A.aaa = '易水寒'
# obj = A('dsb') # # 类外面可以给对象封装属性 # # respons = input('太白帅不帅!') # # if respons == '帅': # # obj.weapon = 'AWM' # # print(obj.__dict__) # # 类内部封装属性 # obj.func() # print(obj.__dict__) # A.teamp = '39.5' # print(A.__dict__) # obj = A('dsb') # # A.func1(111) # A.func1(obj) # print(A.__dict__)
class Person: mind = '有思想' language = '会使用语言' def __init__(self, name, age): self.name = name self.age = age def work(self): print('人类一般都需要工作') p1 = Person('dsb', 21) del p1.mind # 报错 # print(p1.mind) # p1.mind = '无脑' # print(p1.mind) # print(Person.mind)
# 对象如果查询一个属性: 对象空间 ----> 类空间 ----> 父类空间 ---> # 类查询一个属性: 类空间 ----> 父类空间 ----> # 单向不可逆 # 对象与对象之间原则上互相独立(除去组合这种特殊的关系之外).
类与类的关系
依赖关系: 将一个类名或者类的对象传给另一个类的方法中.
class A: pass class B: pass ''' 1. 依赖关系 2. 组合关系(关联组合聚合) 3. 继承关系(明天讲) ''' # 1.依赖关系(主从关系) # 大象进冰箱 class Elephant: def __init__(self, name): self.name = name def open(self, ref1): # print(ref1) print(f'{self.name}默念三声: 芝麻开门') ref1.open_door() def close(self): print('大象默念三声:芝麻关门') class Refrigerator: def __init__(self, name): self.name = name def open_door(self): print(f'{self.name}冰箱门被打开了....') def close_door(self): print('冰箱门被关上了....') # ele = Elephant('琪琪') # ele1 = Elephant('安安') # ref = Refrigerator('美菱') # ele.open(ref) # ele1.open(ref) # 依赖关系: 将一个类的类名或者对象传给另一个类的方法中. # 实现两个: # 大象执行open方法: # 显示: '哪个大象 大象默念三声: 芝麻开门' # 显示: '哪个冰箱门 冰箱门被打开了....' # 关门的流程也需要完成.
组合关系(关联组合聚合)
转载于:https://www.cnblogs.com/W-Y-C/p/11151914.html