博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python之路--类与类之间的关系
阅读量:6626 次
发布时间:2019-06-25

本文共 2330 字,大约阅读时间需要 7 分钟。

类和类之间的关系

  在我们的世界中事物和事物之间总会有一些联系.

  在面向对象中. 类和类之间也可以产生相关的关系
  1. 依赖关系
    执行某个动作的时候. 需要xxx来帮助你完成这个操作. 此时的关系是最轻的.
    随时可以更换另外一个东西来完成此操作

class Person:    def play(self, tools): # 通过参数的传递把另外一个类的对象传递进来        tools.run()        print("很开心, 我能玩儿游戏了")class Computer:    def run(self):        print("电脑开机. 可以运行")class Phone:    def run(self):        print("手机开机, 可以运行")c = Computer()phone = Phone()p = Person()p.play(phone)

 

  

# 写一个植物大战僵尸# 1. 植物#       打僵尸. 僵尸掉血# 2. 僵尸#       吃植物. 植物掉血class Plant:    def __init__(self, name, hp, ad): # 200        self.name = name        self.hp = hp        self.ad = ad    def attack(self, js):        print("植物攻击僵尸")        js.hp -= self.ad        print(f"僵尸掉血{self.ad}, 还剩下{js.hp}")class JiangShi:    def __init__(self, name, hp, ad): # 1000  800        self.name = name        self.hp = hp        self.ad = ad    def attack(self, zw):        print("僵尸咬植物")        zw.hp -= self.ad        print(f"植物掉血{self.ad}, 还剩{zw.hp}")# 植物wd = Plant("歪脖子豌豆", 10, 20)# 僵尸js = JiangShi("铁桶僵尸", 200, 1)wd.attack(js)wd.attack(js)js.attack(wd)js.attack(wd)wd.attack(js)

 

  

  2. 关联关系

    在对象里面埋对象
    self.girlFriend = girl
    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("单身狗, 吃什么吃? 滚去学习.")

 

  

    self.teach_list = [t1,t2,t3]

    2. 一对多关系
      一个学校. 一堆老师

class School:    def __init__(self, name):        self.teach_list = [] # 这里要装多个老师        self.name = name    def zhaopin(self, teach):        self.teach_list.append(teach)    def shangke(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}在上课")lnh = School("老男孩")t1 = Teacher("武sir")t2 = Teacher("太白")t3 = Teacher("哪吒")lnh.zhaopin(t1)lnh.zhaopin(t2)lnh.zhaopin(t3)lnh.shangke()

 

  3. self 是谁  

    self:谁调用的就是谁. 类型是根据调用方的对象来进行变换的

    super:表示的是父类

  4.特殊成员

__init__() # 创建对象的时候初始化操作__call__() # 对象()__getitem__() # 对象[哈哈]__setitem__() # 对象[哈哈] = 值__new__() # 创建对象的时候.开辟内存__enter__() # with 对象__exit__() #结束with的时候__hash__() # 可哈希 hash()

 

转载于:https://www.cnblogs.com/attila/p/10145803.html

你可能感兴趣的文章
云栖大会上发布了哪些移动研发新利器?
查看>>
《黑客免杀攻防》读书笔记-软件逆向工程(6) switch-case分支
查看>>
day6作业--游戏人生完善
查看>>
金字塔思维
查看>>
strak组件(10):批量操作
查看>>
thinkphp空控制器的处理
查看>>
接口幂等
查看>>
LibreOffice 打开中文乱码
查看>>
FromBottomToTop第十三周项目博客
查看>>
【常用工具】常用工具收集
查看>>
Tax
查看>>
第二阶段团队冲刺站立会议06
查看>>
html
查看>>
本地wampserver如何配置伪静态
查看>>
C#串口通信实例
查看>>
小程序数据返回时刷新当前页面数据
查看>>
jFinal 关联数据库操作
查看>>
团队冲刺第二天
查看>>
sed删除空行和开头的空格和tab键
查看>>
php扩展安装
查看>>