zoukankan      html  css  js  c++  java
  • 第19-21天

    组合:

      类似于类中类的概念,或者说是如同一个树状图,如

      class A:

        def __init__(self, a, b):

          self.a = a

          self.b = b

      class B

        def __init__(self,c)

          self.c = c

      b = B(ccc')

      abc = A('aaa',b)

      print(abc.__dict__) 

    结果应该是  {'b': <__main__.B object at 0x0000028D7D33EF28>, 'a': 'aaa'}   ,这里的b对应的值也是一个class

    继承 :

      class A : 

        def __init__(self, a, b):

          self.a = a

          self.b = b

      class B(A):

        def __init__(self, a, b, c):

          super().__init__(a, b)

      则:

      asd = B(a , b, c)  需要三个参数。继承则共用A中的方法与属性

    钻石继承:

      新式类,按照广度优先,调用路线好比走路,当还有其他点能到下个点的时候,优先走另一条路  (PY2中表达方法是类继承object,3中全是新式类)

      经典类:按着深度优先,可以理解为一条路一直走到头

    接口类:一种规范化

      from abc import ABCMeta,abstractmethod

      class Py(metaclass= ABCMeta):

        @abstractmethod

        def ppp(self,a):pass

      若此时Be类继承Py类,则必须有ppp这个方法,即:

      class Be(Py):

        def ppp(self,a): pass

      都叫一个名字了以后,就可以归一化管理:

      def aaa(a, b):

        a.ppp(b)      做到统一调用

    如同:

      

    from abc import ABCMeta,abstractmethod
    class A(metaclass= ABCMeta):
    @abstractmethod
    def ppp(self,b):
    print(b+1)


    class B(A):
    def __init__(self,r):
    self.a = r
    def ppp(self,a):
    print(a)

    class C(A):
    def __init__(self, r):
    self.a = r
    def ppp(self,b):
    print(b+1)

    def aaa(a, b):
    a.ppp(b)

    c = C(0)
    b = B(2)
    a = aaa(c, 10)



    鸭子模型:

        是一种格式,即不用上述方法强制限制,而是程序员自己按照格式走

    多态:   

        java中存在多态。当函数需要传参的时候,需要固定参数的类型,如public class A entend B (int a, int b)称之为多态

        Python中不存在多态(说法不一),跟确切的说是使用的方法跳过了这个判定的阶段

     

      

  • 相关阅读:
    [Vue]使用 vue-i18n 切换中英文
    轻松实现Ecshop商城多语言切换
    关于ecshop的mobile里user.php登录和注册验证码不显示
    ecshop用户中心菜单选项显示内容标签
    ECSHOP的JS文件代入问题
    在PHP中gmtime()与time()区别
    ECSHOP中 {insert name='ads' id=$ads_id num=$ads_num}含义
    ECshop 迁移到 PHP7版本时遇到的兼容性问题,ecshopphp7
    App开放接口api安全性—Token签名sign的设计与实现
    台湾拼音对照表
  • 原文地址:https://www.cnblogs.com/ylx900/p/8857447.html
Copyright © 2011-2022 走看看