1、子类中用父类类名调用
- 这种方法不易维护
- 如果父类名变更,子类中所有代码都要修改
class Animal:
def __init__(self,name):
self.name=name
print("这只动物叫%s"%self.name)
class Pig(Animal):
def __init__(self,name,age):
Animal.__init__(self,name)
self.age=age
print("是社会人,今年%d岁了"%self.age)
if __name__ == '__main__':
pig=Pig("佩奇",3)
输出:
这只动物叫佩奇
是社会人,今年3岁了
2、子类中用super()调用
- 可以解决上例中存在的问题
- super().init(name) 和super(Pig,self).init(name)都可以
- 不需要传self
class Animal:
def __init__(self,name):
self.name=name
print("这只动物叫%s"%self.name)
class Pig(Animal):
def __init__(self,name,age):
super().__init__(name)
#super(Pig,self).__init__(name)
self.age=age
print("是社会人,今年%d岁了"%self.age)
if __name__ == '__main__':
pig=Pig("佩奇",3)