Python实现子类调用父类的方法
本文实例讲述了Python实现子类调用父类的方法。分享给大家供大家参考。具体实现方法如下:
python和其他面向对象语言类似,每个类可以拥有一个或者多个父类,它们从父类那里继承了属性和方法。如果一个方法在子类的实例中被调用,或者一个属性在子类的实例中被访问,但是该方法或属性在子类中并不存在,那么就会自动的去其父类中进行查找。
继承父类后,就能调用父类方法和访问父类属性,而要完成整个集成过程,子类是需要调用的构造函数的。
子类不显式调用父类的构造方法,而父类构造函数初始化了一些属性,就会出现问题
如果子类和父类都有构造函数,子类其实是重写了父类的构造函数,如果不显式调用父类构造函数,父类的构造函数就不会被执行,导致子类实例访问父类初始化方法中初始的变量就会出现问题。
先来看看如下示例:
classA: def__init__(self): self.namea="aaa" deffunca(self): print"functiona:%s"%self.namea classB(A): def__init__(self): self.nameb="bbb" deffuncb(self): print"functionb:%s"%self.nameb b=B() printb.nameb b.funcb() b.funca()
运行结果:
bbb
functionb:bbb Traceback(mostrecentcalllast): File"D:workbenchpythonMyPythonProjectteststudyoverwrite_method.py",line19,in<module> printb.funca() File"D:workbenchpythonMyPythonProjectteststudyoverwrite_method.py",line6,infunca print"functiona:%s"%self.namea AttributeError:Binstancehasnoattribute'namea'