美文网首页
Python调用父类中的方法和super()的用途

Python调用父类中的方法和super()的用途

作者: udhga | 来源:发表于2019-01-22 20:28 被阅读8次
直接调用父类的super方法
class A:
    def span(self):
        print('---a---')

class B(A):
    def span(self):
        print('-----b-----')
        super().span()

b = B()
print(b.span())
调用父类的init()方法,确保父类被正确初始化
class C:
    def __init__(self):
        self.x = 1

class D(C):
    def __init__(self):
        super().__init__()
        self.y = 1

d = D()
print(d.x, d.y)
当覆盖了python中的特殊方法时
class Proxy:
    def __init__(self, obj):
        self.obj = obj

    def __getattr__(self, name):
        return getattr(self._obj, name)

    def __setattr__(self, name, value):
        if name.startswith("_"):
            # __setattr__方法被覆盖,调用父类的原始方法
            super().__setattr__(name, value)
        else:
            setattr(self._obj, name, value)

相关文章

  • python 面向对象: super()

    python 关于 super 的使用 子类对象调用父类方法 :super(B,b).hh() 子类中调用父类方法...

  • JavaScript零散知识点

    继承 super 在子类中调用super,会调用父类的方法; 不用super,则会覆盖父类的方法。调用本类中的方法。

  • Python调用父类中的方法和super()的用途

    直接调用父类的super方法 调用父类的init()方法,确保父类被正确初始化 当覆盖了python中的特殊方法时

  • super关键字

    super的作用: 直接调用父类中的某个方法 super处在对象方法中,那么就会调用父类的对象方法,super处在...

  • super和self关键字的区别

    super在类方法中, 一定会调用父类的类方法super在对象方法中, 一定会调用父类的对象方法可以利用super...

  • 多继承以及MRO顺序

    1、单独调用父类的方法 2、多继承中super调用所有父类的被重写方法 3、单继承中super() 总结 supe...

  • self和super的区别

    self和super的区别 self调用自己方法,super调用父类方法 self是类,super是预编译指令 [...

  • oc 方法

    super 关键字: 1:可以直接调用父类的某个方法。 2:super 处在对象方法中,就会调用父类的对象方法。 ...

  • python的多重继承

    python的多重继承最好建议使用super的方法调用父类,如果使用父类的类名去调用,就会造成重复调用父类的情况比...

  • java this super关键字

    super 1、调用父类的成员变量super.name2、直接调用父类无参构造方法super,可省略3、调用父类有...

网友评论

      本文标题:Python调用父类中的方法和super()的用途

      本文链接:https://www.haomeiwen.com/subject/uhirjqtx.html