加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

类__依赖关系

发布时间:2020-12-14 05:04:08 所属栏目:百科 来源:网络整理
导读:一.依赖关系。 二.关联关系 三.一对多关系。 四,关于类的补充。 五.关于特殊方法。 一.依赖关系. ?举个植物大战僵尸的例子就明白了: 写一个植物大战僵尸 1 . 植物 打僵尸. 僵尸掉血 2 . 僵尸 吃植物. 植物掉血 ? ? 二.关联关系. ?举个男女朋友的例子,就懂了:

一.依赖关系。

二.关联关系

三.一对多关系。

四,关于类的补充。

五.关于特殊方法。

一.依赖关系.

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

写一个植物大战僵尸
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 对象就不可哈希了了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读