zoukankan      html  css  js  c++  java
  • super方法

    super方法

    super是按照mro顺序来寻找当前类的下一个类

    在py3中不需要传参数,自动就帮我们寻找当前类的mro顺序的下一个类中的同名方法

    在py2中的新式类中,需要我们主动传递参数super(子类的名字,子类的对象).函数名()

    这样才能够帮我们调用到这个子类的mro顺序的下一个类中的方法

    在py2的经典类中,并不支持使用super来找下一个类

    在D类中找super的func,那么可以这样写 super().func()

    也可以这样写 super(D,self).func() (并且在py2的新式类中必须这样写)

    class A:
        def func(self):
            print('A')
    
    class B(A):
        def func(self):
            super().func()
            print('B')
    
    class C(A):
        def func(self):
            super().func()
            print('C')
    
    class D(B,C):
        def func(self):
            super().func()
            print('D')
    # print(D.mro())
    #[<class '__main__.D'>, <class '__main__.B'>, <class '__main__.C'>, <class '__main__.A'>, <class 'object'>]
    d =D()
    print(d.func())
    #A
    #C
    #B
    #D
    
    # 在单继承的程序中,super就是找父类
    class User:
        def __init__(self,name):
            self.name = name
    class VIPUser(User):
        def __init__(self,name,level,strat_date,end_date):
            # User.__init__(self,name)
                       # 推荐的
            super(VIPUser,self).__init__(name)
            self.level = level
            self.strat_date = strat_date
            self.end_date = end_date
    
    taibai = VIPUser('太白',6,'2019-01-01','2020-01-01')
    print(taibai.__dict__)
    #{'name': '太白', 'level': 6, 'strat_date': '2019-01-01', 'end_date': '2020-01-01'}
    
  • 相关阅读:
    Android 联系人中使用的常量
    Android 获取联系人Uri
    Android 编辑联系人
    Android 删除联系人
    Android 联系人添加
    Android 联系人查询
    CollectionViewMasonryLayout
    centos7搭建redis
    centos7搭建zookeeper
    排序算法
  • 原文地址:https://www.cnblogs.com/wyh0717/p/13198408.html
Copyright © 2011-2022 走看看