掌握python中子类如何继承父类的__init__方法

  • 更新时间:2020-03-17 10:16:11
  • 编辑:空书蕾

前言

使用Python写过面向对象的代码的同学,可能对 __init__ 方法已经非常熟悉了,__init__方法在类的一个对象被建立时,马上运行。这个方法可以用来对你的对象做一些你希望的 初始化 。

注意:这个名称的开始和结尾都是双下划线。

父类A

class A(object):
 def __init__(self, name):
  self.name=name
  print "name:", self.name
 def getName(self):
  return 'A ' + self.name

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

class B(A):
 def getName(self):
  return 'B '+self.name
 
if __name__=='__main__':
 b=B('hello')
 print b.getName()

执行

$python lei2.py 
name: hello
B hello

但重写了__init__时,实例化子类,就不会调用父类已经定义的__init__

class A(object):
 def __init__(self, name):
  self.name=name
  print "name:", self.name
 def getName(self):
  return 'A ' + self.name

class B(A):
 def __init__(self, name):
  print "hi"
  self.name = name
 def getName(self):
  return 'B '+self.name

if __name__=='__main__':
 b=B('hello')
 print b.getName()

执行

$python lei2.py 
hi
B hello

为了能使用或扩展父类的行为,最好显示调用父类的__init__方法

class A(object):
 def __init__(self, name):
  self.name=name
  print "name:", self.name
 def getName(self):
  return 'A ' + self.name

class B(A):
 def __init__(self, name):
  super(B, self).__init__(name)
  print "hi"
  self.name = name
 def getName(self):
  return 'B '+self.name

if __name__=='__main__':
 b=B('hello')
 print b.getName()

执行

$python lei2.py
name: hello
hi
B hello

总结

以上就是关于python子类继承父类的__init__方法的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

相关教程

  • Python库AutoTS一行代码得到最强时序基线

    AutoTS它是一个用于自动时间序列分析的 Python 库。AutoTS 允许我们用一行代码训练多个时间序列模型,以便我们可以选择最适合的模型,今天介绍一种非常霸道的工具,融合了自动化机器学习技术开发的AutoTS

    发布时间:2019-07-23

  • java.lang.ExceptionInInitializerError异常的解决方法

    这篇文章主要为大家详细介绍了java.lang.ExceptionInInitializerError异常的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    发布时间:2019-08-28

  • 零基础轻松学Python

    零基础轻松学Python

    Python鼻祖GuidovanRossum力荐的Python新手入门书。这书以浅显易懂的語言、好玩儿趣味的实例让用户轻松、由浅入深地重零开始把握Python3程序编写。这书內容都是创作者领着的Python实战演练圈里数

    大小:120.16 MBPython3基础

  • Python 3.5从零开始学

    Python 3.5从零开始学

    《Python 3.5从零开始学》 专门针对Python新手量身定做,涵盖了Python 3 实际开发的重要知识点,内容包括:Python语言的类型和对象、操作符和表达式、编程结构和控制流、函数、序列、多线程、正

    大小:41.5 MBPython电子书

  • Python基础教程(第3版)

    Python基础教程(第3版)

    本书是一本Python3.5编程从入门到实践书籍,Python入门佳作,包括Python程序设计的方方面面,既能为初学者夯实基础,又能帮助程序员提升技能

    大小:10.1 MBpython电子书

  • Python可以这样学

    Python可以这样学

    《Python可以这样学》对Python内部工作原理进行了一定深度的剖析,案例代码使用Python 3.5.1实现和Python 3.6.0,适当介绍了Python代码优化、系统编程和安全编程的有关知识,满足不同层次读者的需要,适合作为Python程序员的开发指南。

    大小:22 MBPython入门电子书

  • Python编程:从入门到实践

    Python编程:从入门到实践

    《Python编程:从入门到实践》是Python3.5编程入门图书(从入门到实践),机器学习,数据处理,网络爬虫热门编程语言,从基本概念到完整项目开发,帮助零基础读者迅速掌握Python编程。

    大小:9.85MPython入门电子书

  • Python程序设计入门到实战

    Python程序设计入门到实战

    Python言语是现在市面上*火爆的程序设计语言之一,除开功能齐全以外,也有迅速入门、随时随地可扩大、社群营销兼容等特点。这书以16章的篇数迅速详细介绍Python言语的精要,包含编程设计

    大小:423.1 MBPython

  • Python全栈数据工程师养成攻略(视频)

    Python全栈数据工程师养成攻略(视频)

    本书介绍了数据工程和Python语法,随后讲解如何获取和存储数据,并实现简单的静态可视化,帮助读者将学习到关于Web建站的一些基础和进阶知识

    大小:129.7 MBPython全栈电子书

  • 精通Python自然语言处理(Deepti)

    精通Python自然语言处理(Deepti)

    这是一本学习自然语言处理的一本综合学习指南,介绍如何使用Python执行各种自然语言处理(NLP)任务,帮助读者掌握利用Python设计和构建基于NLP的应用实践。适合熟悉Python语言并对自然语言处

    大小:16 MBPython电子书

  • Python入门经典

    Python入门经典

    大小:48.1 MBPython入门电子书

用户留言