微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

类__依赖关系

一.依赖关系。

二.关联关系

三.一对多关系。

四,关于类的补充。

五.关于特殊方法。

一.依赖关系.

 举个植物大战僵尸的例子就明白了:

一个植物大战僵尸
1. 植物
      打僵尸. 僵尸掉血
2. 僵尸
      吃植物. 植物掉血

 

分享图片

 

二.关联关系.

 举个男女朋友的例子,就懂了:

分享图片

三.一对多关系.

 举个学校和老师的关系就懂了:

分享图片

 

四,关于类的补充.

类名的补充:  类名 => 变量名,举例说明

class Foo:
    def chi(self,food):
        print("我爱吃鱼和",food)
class Bar:
    def chi(self,food):
        print("我爱吃肉和",food)
dic = {Foo:"烤肠",Bar:"火腿"}
for k,v in dic.items(): #将字典的内容解构给前面的俩变量
    k().chi(v) #此时的k就是Foo,加个(),就相当于调用.

关于self的补充:

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

 super:表示的是父类

五.关于特殊方法.

特殊方法的小集合:

 

1)__del__#析构方法,当对象在内存中被释放时,自动触发执行。此方法一般无须定义,析构函数调用是由解释器在进行垃圾回收时自动触发执行的
2)__call__#对象后面加括号,触发执行。构造方法的执行是由创建对象触发的,即:对象 = 类名() ;而对于 __call__ 方法的执行是由对象后加括号触发的,即:对象() 或者 类()()
3)1. 类名() 会自动执行__init__() 
2. 对象() 会?自动执?行行__call__()
3. 对象[key] 会?自动执?行行__getitem__()
4. 对象[key] = value 会?自动执?行行__setitem__()
5. del 对象[key] 会?自动执?行行 __delitem__()
6. 对象+对象 会?自动执?行行 __add__()
7. with 对象 as 变量量 会?自动执?行行__enter__ 和__exit__
8. 打印对象的时候 会?自动执?行行 __str__
9. ?干掉可哈希 __hash__ == None 对象就不可哈希了了.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐