zoukankan      html  css  js  c++  java
  • 类__依赖关系

    一.依赖关系。

    二.关联关系

    三.一对多关系。

    四,关于类的补充。

    五.关于特殊方法。

    一.依赖关系.

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

    写一个植物大战僵尸
    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)

     

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

  • 相关阅读:
    不等高cell的搭建(一)
    重复点击主界面(TabBar)按钮刷新界面--点击状态栏回到顶部
    如何学习新框架(保存图片到相册)
    上下拉刷新
    MVVM框架思想
    不等高cell的tableView界面搭建
    UITabBarController底层实现
    封装业务类
    RSS阅读器
    构造队列
  • 原文地址:https://www.cnblogs.com/lgw1171435560/p/10144619.html
Copyright © 2011-2022 走看看