python中的实例方法、静态方法、类方法、类变量和实例变量浅析

2019-10-06 16:42:15王振洲

if __name__ == '__main__':
    Foo.echo()
运行结果:

3

六、如何调用父类的构造函数

子类(派生类)并不会自动调用父类(基类)的init方法,例如:

class Foo(object):
    def __init__(self):
        self.val = 1

class Foo2(Foo):
    def __init__(self):
        print self.val

if __name__ == '__main__':
    foo2 = Foo2()
运行时报错。

调用父类的init方法有两种,第一种:

class Foo(object):
    def __init__(self):
        self.val = 1

class Foo2(Foo):
    def __init__(self):
        Foo.__init__(self)
        print self.val

if __name__ == '__main__':
    foo2 = Foo2()
第二种:

class Foo(object):
    def __init__(self):
        self.val = 1

class Foo2(Foo):
    def __init__(self):
        super(Foo2,self).__init__()
        print self.val

if __name__ == '__main__':
    foo2 = Foo2()
这两种方法的运行结果均为:

1
不过这两种方法是有区别的。