Python子类继承父类构造函数详解

 更新时间:2019年02月19日 16:33:25   投稿:laozhang  
在本文里我们给大家分享一篇关于Python 子类继承父类构造函数的相关知识点内容,需要的朋友们跟着学习下。

如果在子类中需要父类的构造方法就需要显式地调用父类的构造方法,或者不重写父类的构造方法。

子类不重写 __init__,实例化子类时,会自动调用父类定义的 __init__。

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() )

输出结果为:

name: runoob
Son runoob

如果重写了__init__ 时,实例化子类,就不会调用父类已经定义的 __init__,语法格式如下:

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() )

输出结果为:

hi
Son runoob

如果重写了__init__ 时,要继承父类的构造方法,可以使用 super 关键字:

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

还有一种经典写法:

父类名称.__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() )

输出结果为:

name: runoob
hi
Son runoob

相关文章

  • 浅析Python中的赋值和深浅拷贝

    浅析Python中的赋值和深浅拷贝

    Python中,对象的赋值,拷贝(深/浅拷贝)之间是有差异的,如果使用的时候不注意,就可能产生意外的结果。接下来通过本文给大家分享Python中的赋值和深浅拷贝,感兴趣的朋友一起看看吧
    2017-08-08
  • 如何解决pytorch训练过程中CPU内存溢出问题

    如何解决pytorch训练过程中CPU内存溢出问题

    这篇文章主要介绍了如何解决pytorch训练过程中CPU内存溢出问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • 15个短代码示例理解python丰富的编程思维

    15个短代码示例理解python丰富的编程思维

    这篇文章主要为大家介绍了python丰富的编程思维,文中通过python的几行短代码示例来给大家进行详细的讲解,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-11-11
  • Python selenium 三种等待方式解读

    Python selenium 三种等待方式解读

    这篇文章主要介绍了Python selenium一定要会用selenium的等待,三种等待方式解读的相关资料,需要的朋友可以参考下
    2016-09-09
  • pytorch finetuning 自己的图片进行训练操作

    pytorch finetuning 自己的图片进行训练操作

    这篇文章主要介绍了pytorch finetuning 自己的图片进行训练操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • python常见的格式化输出小结

    python常见的格式化输出小结

    今天在写代码的时候,需要统一化输出格式进行,一时想不起竟具体细节,用了最笨的方法,所以觉得有必要将常见的方法进行一个总结。下面这篇文中就给大家总结了python中常见的格式化输出,比如打印字符串、打印整数和打印浮点数等,下面来看看详细的输出方法吧。
    2016-12-12
  • 解决Python命令行下退格,删除,方向键乱码(亲测有效)

    解决Python命令行下退格,删除,方向键乱码(亲测有效)

    今天小编就为大家分享一篇解决Python命令行下退格,删除,方向键乱码(亲测有效),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • 使用pandas对两个dataframe进行join的实例

    使用pandas对两个dataframe进行join的实例

    今天小编就为大家分享一篇使用pandas对两个dataframe进行join的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Python 高级库15 个让新手爱不释手(推荐)

    Python 高级库15 个让新手爱不释手(推荐)

    对于初学者来说,这是一种简单易学的编程语言;另一个原因:大量开箱即用的第三方库,正是 23 万个由用户提供的软件包使得 Python 真正强大和流行,本文给大家分享15 个让新手爱不释手Python 高级库的相关知识,感兴趣的朋友一起看看吧
    2021-05-05
  • python脚本爬取字体文件的实现方法

    python脚本爬取字体文件的实现方法

    这篇文章主要给大家介绍了利用python脚本爬取字体文件的实现方法,文中分享了爬取两个不同网站的示例代码,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-04-04

最新评论