day017-------python 类与类的关系

                                    类与类的关系的简单说明

一:类与类的关系
    001:依赖关系
    002:管理关系
    003:继承关系:

二:实例理解:
01:依赖关系:
# 植物大战僵尸. 创建一个植物. 创建一个僵尸
    # 植物: 名字, 攻击力
    # 僵尸: 名字, 血量
    # 植物可以打僵尸. 僵尸掉血
    # 显示出僵尸挨揍之后的血量

    class ZhiWu:
        def __init__(self,name,gjl):
            self.name=name
            self.gjl=gjl

        def DaJiangShi(self,js):   #传入  "僵尸一号",1000
            js.FangYu()
            js.fyl-=self.gjl  #表示 僵尸被植物打一下损失 血量
            print("植物要打僵尸了")
            print("僵尸被打了,还剩  %s 血" % js.fyl)

    class JiangShi:
        def __init__(self,name,fyl):
            self.name=name
            self.fyl=fyl

        def FangYu(self):   #c传入植物一号
            print("僵尸在防御")

    zw=ZhiWu("植物1号",10)
    js=JiangShi("僵尸一号",900)
    zw.DaJiangShi(js)
 02:关联关系:
class Teacher:
        def __init__(self, name, lst=None):
            self.name=name
            if lst==None:  #判断传递过来的参数是否是空
                self.lst=[]
            else:
                self.lst=lst
        #添加学生
        def tianjia(self,student):
            self.lst.append(student)

        def display(self):
            for s in self.lst:  #s是老师的学生
                print(s.name)

    class Student:
        def __init__(self,num,name,Teacher=None):
            self.num=num
            self.name=name
            self.Teacher=Teacher

    t=Teacher("大张伟")
    s1=Student(1,"张三")
    s2=Student(2,"李四")
    s3=Student(3,"王五")
    s4=Student(4,"旺财")

    t.tianjia(s1)
    t.tianjia(s2)
    t.tianjia(s3)
    t.tianjia(s4)
    t.display()

03:继承关系:
class Base:
        def __init__(self, num):
            self.num = num

        def func1(self):
            print(self.num)
            self.func2()

        def func2(self):
            print(111, self.num)

    class Foo(Base):
        def func2(self):
            print(222, self.num)

    lst = [Base(1), Base(2), Foo(3)]
    for obj in lst:
        obj.func2()
 04:特殊成员:  需要总结常用的几个
............
原文地址:https://www.cnblogs.com/one-tom/p/9931293.html