类__依赖关系

一.依赖关系。

二.关联关系

三.一对多关系。

四,关于类的补充。

五.关于特殊方法。

一.依赖关系.

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

写一个植物大战僵尸
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:表示的是父类

五.关于特殊方法.

特殊方法的小集合:

 

特殊成员:
__del__#析构方法,当对象在内存中被释放时,自动触发执行。此方法一般无须定义,析构函数的调用是由解释器在进行垃圾回收时自动触发执行的
__call__#对象后面加括号,触发执行。构造方法的执行是由创建对象触发的,
               即:对象 = 类名() ;而对于 __call__ 方法的执行是由对象后加括号触发的,即:对象() 或者 类()()
__init__ 初始化操作
__getitem__ 对象[]
__setitem__ 对象[] = 值
__new__  开辟内存.
__hash__ 可哈希. hash()
__enter__ with 对象:
__exit__  with 对象:结束的时候自动调用
__iter__ iter(对象), for
__str__  打印对象的时候会自动执行

类的特殊方法__new示例:

 

class A:
    def __new__(cls, *args, **kwargs):
        print('new被执行了', args, kwargs)
        cls.__init__(cls, *args, **kwargs)

    def __init__(self, *args, **kwarg):
        self.b = args
        self.b2 = kwarg
        print('init被执行了',  self.b)
        print('init被执行了2', self.b2)
dic = {'b2':123}
c = A(1, **dic)

 

 

 

 

类__依赖关系(相关练习)

posted @ 2018-12-19 21:26  Tank-Li  阅读(702)  评论(0编辑  收藏  举报