首页 技术 正文
技术 2022年11月14日
0 收藏 710 点赞 4,464 浏览 1371 个字

在我们的世界中事物和事物之间总会有一些联系.   在面向对象中. 类和类之间也可以产生相关的关系

1. 依赖关系
  执行某个动作的时候. 需要xxx来帮助你完成这个操作. 此时的关系是最轻的. 随时可以更换另外一个东西来完成此操作

  

class Person:
def play(self, tools):
tools.run()
print('终于能打游戏了')class Computer:
def run(self):
print('电脑已经打开,DNF已经登陆')
class Phone:
def run(self):
print('王者荣耀已经登陆')
c = Computer()
PH = Phone()
p = Person()
p.play(c)
# 电脑已经打开,DNF已经登陆
# 终于能打游戏了
p.play(PH)
# 王者荣耀已经登陆
# 终于能打游戏了

2. 关联关系
  在对象里面埋对象
  1. 一对一关系
    

class Boy:    def __init__(self, name,  girlFriend=None):
# 在初始化的时候可以给一个对象的属性设置成另一个类的对象
self.girlFriend = girlFriend # 一个男孩有一个女朋友 def chi(self):
if self.girlFriend:
print(f"带着他的女朋友{self.girlFriend.name}去吃饭")
else:
print("单身狗, 吃什么吃? 滚去学习.") def movie(self):
if self.girlFriend:
print(f"带着他的女朋友{self.girlFriend.name}去看电影")
else:
print("单身狗, 看什么看? 滚去学习.")class Girl:
def __init__(self, name):
self.name = nameb = Boy("宝浪")
g = Girl("ABC")
b.chi() # 单身狗, 吃什么吃? 滚去学习.# alex给包浪介绍了一个女朋.
b.girlFriend = g
b.chi() # 带着他的女朋友ABC去吃饭g2 = Girl("QWER")
b.girlFriend = g2 # 换了个女朋友
b.chi() # 带着他的女朋友QWER去吃饭

  2. 一对多关系
    

# 一对多
class School:
def __init__(self, name):
self.teach_list = []
def zhaopin(self,teach):
self.teach_list.append(teach)
def shagnke(self):
for t in self.teach_list:
t.work()
class Teacher:
def __init__(self, name):
self.name = name
def work(self):
print(f'{self.name}在上课')
x = School('xxx学校')
t1 = Teacher('教师1')
t2 = Teacher('教师2')
t3 = Teacher('教师3')
t4 = Teacher('教师4')x.zhaopin(t1)
x.zhaopin(t2)
x.zhaopin(t3)
x.zhaopin(t4)x.shagnke()
'''
教师1在上课
教师2在上课
教师3在上课
教师4在上课
'''

类中的关系: 依赖关系是最轻的. 最重的是继承关系. 关联关系是比较微妙的.

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,000
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,512
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,358
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,141
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,771
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,849