zoukankan      html  css  js  c++  java
  • 面向对象的日常笔记

    1.

    # Author:Jesi
    # Time : 2018/12/29 16:33
    class Base(object):
        def func(self):
            super(Base,self).func()
            print("Base.func")
    
    
    class Bar(object):
        def func(self):
            print("Bar.func")
    
    class Foo(Base,Bar):
        pass
    
    obj = Foo()
    obj.func()
    print(Foo.__mro__)  # super不是找父类,而是根据__mro__
    '''
    Bar.func
    Base.func
    (<class '__main__.Foo'>, <class '__main__.Base'>, <class '__main__.Bar'>, <class 'object'>)
    '''
    
    # =======================================
    obj = Base()
    obj.func()   # AttributeError: 'super' object has no attribute 'func'

    2.偏函数

    # Author:Jesi
    # Time : 2018/12/29 16:23
    import functools
    
    
    def index(a1, a2):
        return a1 + a2
    
    
    # 偏函数帮助开发者自动传递参数
    new_func = functools.partial(index, 666)
    
    ret = new_func(1)
    print(ret)  # 667

    3.继承

    # Author:Jesi
    # Time : 2018/12/29 16:27
    
    class Base(object):
        def func(self):
            print("base.func")
    
    
    
    class Foo(Base):
        def func(self):
    
            # 方式一:执行父类的func
            super(Foo,self).func()
    
            # 方式二:主动执行Base类的方法
            Base.func(self)
    
            # 执行真正的子类func
            print("Foo.func")
    
    obj = Foo()
    obj.func()
  • 相关阅读:
    登录Mysql看不到Mysql库
    七牛云使用记录
    FFmpeg工具
    解决VMware下CentOS连不上网络问题
    14.中介者模式
    二十三种设计模式(三)
    23种设计模式(二)
    搭建ssm环境
    文件的字符流与字节流读写
    设计模式之用工厂模式实现计算器
  • 原文地址:https://www.cnblogs.com/geogre123/p/10197236.html
Copyright © 2011-2022 走看看