1、python 3.x版本的实现:super().父类方法class A(object): def show(self,x): print('A class: {}'.format(x+1))class B(A): def show1(self,x): super().show(x) print("B class: {}".format(x))b=B()b.show1(1)
2、结果:A class: 2B class: 1
3、python 2.x版本实现:super(子类名,self).父类方法class A(object): def show(self,x): print('A class: {}'.format(x+1))class B(A): def show1(self,x): super(B,self).show(x) print("B class: {}".format(x))b=B()b.show1(1)
4、运行结果:A class: 2B class: 1
5、实例:class FooParent(object): def __init__(self): self.parent = 'I\'m the parent.' print ('Parent') def bar(self,message): print ("%s from Parent" % message)class FooChild(FooParent): def __init__(self): # super(FooChild,self) 首先找到 FooChild 的父类(就是类 FooParent),然后把类B的对象 FooChild 转换为类 FooParent 的对象 super(FooChild,self).__init__() print ('Child') def bar(self,message): super(FooChild, self).bar(message) print ('Child bar fuction') print (self.parent)if __name__ == '__main__': fooChild = FooChild() fooChild.bar('HelloWorld')
6、运行结果:ParentChildHelloWorld from ParentChild bar fuctionI'm the parent.