python 面向对象专题(二):类的空间问题、类与对象之间的关系、类与类之间的关系
2021-01-26 01:16
标签:依赖 argv code ict 耦合 顺序 python面向对 contain 技能 https://www.cnblogs.com/liubing8/p/11308127.html 添加对象属性 添加类的属性 查找顺序角度分析类与对象之间的关系 依赖关系:将一个类的类名或者对象传入另一类的方法中 组合关系:将一个类的对象封装到另一个类的对象的属性中 总结:依赖与组合让类与类产生关系,增强耦合性 python 面向对象专题(二):类的空间问题、类与对象之间的关系、类与类之间的关系 标签:依赖 argv code ict 耦合 顺序 python面向对 contain 技能 原文地址:https://www.cnblogs.com/qiu-hua/p/12858380.html
1. 类的空间问题
# 在类的__init__可以添加,在类的方法也可以添加,在类的外部也可以添加
class Human:
mind = ‘有思想的‘
def __init__(self, name, age):
self.name = name
self.age = age
def eat(self,argv):
Human.body = argv
print(‘吃饭‘)
sun = Human(‘张三‘, 18)
sun.eat()
print(sun.__dict__)
sun.weight = 130
print(sun.__dict__)
# 类的内部
sun.eat(‘有头有脸‘)
# 类的外部
Human.body = ‘有头四肢‘
print(Human.__dict__)
2. 类与对象之间的关系
对象空间与类空间有相同的名字, 对象. 肯定先从对象空间查找.
查询顺序:
对象.名字: 对象空间 ______类对象指针_______--> 类空间 ---> 父类空间
类名.名字: 类空间 -----> 父类空间
1.每个对象都可以从类的空间去找,不可以去别的对象空间去找
2.单向不可逆,类名不可以找到对象的属性
3.__init__产生对象空间,不是空的,有一个对象指针
3. 类与类之间的关系
class Elephant:
def __init__(self,name):
self.name = name
def open(self,obj):
print(f‘{self.name} 默念三声: 3,2,1 开门‘)
obj.be_open()
def close(self):
print(f‘{self.name} 默念三声: 3,2,1 关门‘)
class Refrigerator:
def __init__(self, name):
self.name = name
def be_open(self):
print(f‘{self.name}冰箱 被打开了‘)
def be_close(self):
print(f‘{self.name}冰箱 被关闭了‘)
qiqi = Elephant(‘奇奇‘)
haier = Refrigerator(‘海尔‘)
qiqi.open(haier)
class Boy:
def __init__(self, name, girlfriend=None):
self.name = name
self.girlfriend = girlfriend
def have_a_diner(self):
if self.girlfriend:
print(f‘{self.name}请他的{self.girlfriend.age}岁的,{self.girlfriend.body}的女朋友{self.girlfriend.name}一起烛光晚餐‘)
else:
print(‘吃什么吃‘)
def girl_skill(self):
print(f‘{self.name}的女朋友的技能:‘)
self.girlfriend.skill()
class Girl:
def __init__(self,name,age,body):
self.name = name
self.age = age
self.body=body
def skill(self):
print(f‘{self.name} 会做饭‘)
ergou = Boy(‘二狗‘)
qiao = Girl(‘乔‘, 58, ‘小钢炮‘)
ergou.girlfriend = qiao
ergou.have_a_diner()
ergou.girl_skill()
文章标题:python 面向对象专题(二):类的空间问题、类与对象之间的关系、类与类之间的关系
文章链接:http://soscw.com/index.php/essay/47055.html