类与类的关系的简单说明
一:类与类的关系
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:特殊成员: 需要总结常用的几个
............