Python中的__init__,__new__,和super()

__init__

  • 当一个对象被创建,Python首先创建一个空对象,然后为那个新对象调用init()方法
  • 用来给类的实例进行初始化属性,所以可以不需要返回值
  • 在继承时子类可以不重写__init__,实例化子类时,会自动根据MRO顺序调用父类中已定义的__init__
    class A(object):
    def __init__(self,name):
        self.name=name
    def getName(self):
        return 'A '+self.name
    class B(A):
    def getName(self):
        return 'B '+self.name
    if __name__=='__main__':
    b=B('hello')
    print b.getName()
  • 如果本身实现了__init__方法,则不会再向上查找调用,调用自身本身拥有的
  • 在类中如果想使用父类的__init__方法 我们可以使用super()来根据MRO顺序调用父类方法
点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注