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标准库os常用函数和属性详解

    Python标准库os常用函数和属性详解

    os模块是Python标准库中的一个用于访问操作系统相关功能的模块,os模块提供了一种可移植的使用操作系统功能的方法,本文给大家介绍下 OS标准库常用函数和属性,感兴趣的朋友跟随小编一起看看吧
    2022-11-11
  • 使用opencv-python如何打开USB或者笔记本前置摄像头

    使用opencv-python如何打开USB或者笔记本前置摄像头

    这篇文章主要介绍了使用opencv-python如何打开USB或者笔记本前置摄像头的过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • Python数据分析处理(三)--运动员信息的分组与聚合

    Python数据分析处理(三)--运动员信息的分组与聚合

    这篇文章主要介绍了Python数据清洗与处理 运动员信息的分组与聚合,根据Python数据清洗与处理 的相关资料展开运动员信息的分组与聚合的文章内容,需要的朋友可以参考一下
    2021-12-12
  • 详解Python 中的容器 collections

    详解Python 中的容器 collections

    这篇文章主要介绍了Python 中的容器 collections的相关资料,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-08-08
  • CentOS6.9 Python环境配置(python2.7、pip、virtualenv)

    CentOS6.9 Python环境配置(python2.7、pip、virtualenv)

    这篇文章主要介绍了CentOS6.9 Python环境配置(python2.7、pip、virtualenv)方法,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-05-05
  • python实现数学模型(插值、拟合和微分方程)

    python实现数学模型(插值、拟合和微分方程)

    这篇文章主要介绍了python实现数学模型(插值、拟合和微分方程),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • Flask框架利用Echarts实现绘制图形

    Flask框架利用Echarts实现绘制图形

    echarts是百度推出的一款开源的基于JavaScript的可视化图表库,该开发库目前发展非常不错,且支持各类图形的绘制可定制程度高。如下演示案例中,将分别展示运用该绘图库如何前后端交互绘制(饼状图,柱状图,折线图)这三种最基本的图形,需要的可以参考一下
    2022-10-10
  • Django项目的初步创建与简单配置

    Django项目的初步创建与简单配置

    本文主要介绍了Django项目的初步创建与简单配置,详细介绍了如何安装和配置Django,包括创建项目、数据库配置、路由等,通过本文可以了解如何使用Django创建自己的Web应用程序
    2023-09-09
  • 在python里协程使用同步锁Lock的实例

    在python里协程使用同步锁Lock的实例

    今天小编就为大家分享一篇在python里协程使用同步锁Lock的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • 浅析python的Lambda表达式

    浅析python的Lambda表达式

    在本文里我们给大家整理了关于python的Lambda表达式相关知识点以及相关实例,需要的朋友们学习下。
    2019-02-02

最新评论