欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python之类与类之间的关系

程序员文章站 2022-04-15 12:49:10
在我们的世界中事物和事物之间总会有一些联系. 在面向对象中. 类和类之间也可以产生相关的关系 1. 依赖关系 执行某个动作的时候. 需要xxx来帮助你完成这个操作. 此时的关系是最轻的. 随时可以更换另外一个东西来完成此操作 2. 关联关系 在对象里面埋对象 1. 一对一关系 2. 一对多关系 类中 ......

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

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 = name

b = 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在上课
'''

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