当前位置: 移动技术网 > IT编程>脚本编程>Python > python之类与类之间的关系

python之类与类之间的关系

2018年12月20日  | 移动技术网IT编程  | 我要评论

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

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

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

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网