Python 子类继承父类构造函数说明

2023-07-0919:08:37编程语言入门到精通Comments843 views字数 1485阅读模式

如果在子类中需要父类的构造方法就需要显式地调用父类的构造方法,或者不重写父类的构造方法。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/51166.html

子类不重写 __init__,实例化子类时,会自动调用父类定义的 __init__文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/51166.html

实例

class Father(object):
    def __init__(self, name):
        self.name=name
        print ( "name: %s" %( self.name) )
    def getName(self):
        return 'Father ' + self.name
 
class Son(Father):
    def getName(self):
        return 'Son '+self.name
 
if __name__=='__main__':
    son=Son('runoob')
    print ( son.getName() )

输出结果为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/51166.html

name: runoob
Son runoob

如果重写了__init__ 时,实例化子类,就不会调用父类已经定义的 __init__,语法格式如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/51166.html

实例

class Father(object):
    def __init__(self, name):
        self.name = name
        print ( "name: %s" %( self.name) )
    def getName(self):
        return 'Father ' + self.name
 
class Son(Father):
    def __init__(self, name):
        print ( "hi" )
        self.name =  name
    def getName(self):
        return 'Son ' + self.name
 
if __name__=='__main__':
    son=Son('runoob')
    print ( son.getName() )

输出结果为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/51166.html

hi
Son runoob

如果重写了__init__ 时,要继承父类的构造方法,可以使用 super 关键字:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/51166.html

super(子类,self).__init__(参数1,参数2,....)

还有一种经典写法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/51166.html

父类名称.__init__(self,参数1,参数2,...)

实例

class Father(object):
    def __init__(self, name):
        self.name = name
        print ( "name: %s" %( self.name))
    def getName(self):
        return 'Father ' + self.name
 
class Son(Father):
    def __init__(self, name):
        super(Son, self).__init__(name)
        print ("hi")
        self.name =  name
    def getName(self):
        return 'Son ' + self.name
 
if __name__=='__main__':
    son=Son('runoob')
    print ( son.getName() )

输出结果为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/51166.html

name: runoob
hi
Son runoob
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/51166.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/ymba/51166.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定