python中子类继承父类的__init__方法实例


Posted in Python onDecember 15, 2016

前言

使用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 相关文章推荐
零基础写python爬虫之抓取百度贴吧代码分享
Nov 06 Python
详细讲解Python中的文件I/O操作
May 24 Python
对Python多线程读写文件加锁的实例详解
Jan 14 Python
python opencv摄像头的简单应用
Jun 06 Python
Python Web版语音合成实例详解
Jul 16 Python
基于python3监控服务器状态进行邮件报警
Oct 19 Python
python根据文本生成词云图代码实例
Nov 15 Python
python3通过qq邮箱发送邮件以及附件
May 20 Python
python中if及if-else如何使用
Jun 02 Python
基于python调用jenkins-cli实现快速发布
Aug 14 Python
python Gabor滤波器讲解
Oct 26 Python
PyCharm Ctrl+Shift+F 失灵的简单有效解决操作
Jan 15 Python
利用Python中SocketServer 实现客户端与服务器间非阻塞通信
Dec 15 #Python
浅谈Python浅拷贝、深拷贝及引用机制
Dec 15 #Python
利用python获取某年中每个月的第一天和最后一天
Dec 15 #Python
python中快速进行多个字符替换的方法小结
Dec 15 #Python
Python制作简易注册登录系统
Dec 15 #Python
用yum安装MySQLdb模块的步骤方法
Dec 15 #Python
Python3.6正式版新特性预览
Dec 15 #Python
You might like
php is_file 判断给定文件名是否为一个正常的文件
2010/05/10 PHP
使用composer安装使用thinkphp6.0框架问题【视频教程】
2019/10/01 PHP
Laravel 错误提示本地化的实现
2019/10/22 PHP
浅谈laravel aliases别名的原理
2019/10/24 PHP
node.js中的fs.futimes方法使用说明
2014/12/17 Javascript
js实现简单鼠标跟随效果的方法
2015/04/10 Javascript
基于JS如何实现给字符加千分符(65,541,694,158)
2016/08/03 Javascript
BootStrap中Table隐藏后显示问题的实现代码
2017/08/31 Javascript
你可能不知道的前端算法之文字避让(inMap)
2018/01/12 Javascript
React中如何引入Angular组件详解
2018/08/09 Javascript
Vue-input框checkbox强制刷新问题
2019/04/18 Javascript
Vue项目中使用jquery的简单方法
2019/05/16 jQuery
Vue-axios-post数据后端接不到问题解决
2020/01/09 Javascript
JavaScript运动原理基础知识详解
2020/04/02 Javascript
javascript实现的图片预览和上传功能示例【兼容IE 9】
2020/05/01 Javascript
kNN算法python实现和简单数字识别的方法
2014/11/18 Python
给Python IDLE加上自动补全和历史功能
2014/11/30 Python
Python实现设置windows桌面壁纸代码分享
2015/03/28 Python
优化Python代码使其加快作用域内的查找
2015/03/30 Python
举例讲解Python中的迭代器、生成器与列表解析用法
2016/03/20 Python
详解Python中的from..import绝对导入语句
2016/06/21 Python
浅谈Python 的枚举 Enum
2017/06/12 Python
Django 2.0版本的新特性抢先看!
2018/01/05 Python
python flask中静态文件的管理方法
2018/03/20 Python
python 实现数字字符串左侧补零的方法
2018/12/04 Python
Pytorch释放显存占用方式
2020/01/13 Python
利用django model save方法对未更改的字段依然进行了保存
2020/03/28 Python
巧用CSS3 border实现图片遮罩效果代码
2012/04/09 HTML / CSS
丹尼尔惠灵顿手表天猫官方旗舰店:Daniel Wellington
2017/08/25 全球购物
Farfetch澳大利亚官网:Farfetch Australia
2020/04/26 全球购物
学生党员思想汇报范文
2014/01/09 职场文书
2014年健康教育工作总结
2014/11/20 职场文书
《作风建设永远在路上》心得体会
2016/01/21 职场文书
《金色的草地》教学反思
2016/02/17 职场文书
2016年妇联“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
pytest实现多进程与多线程运行超好用的插件
2022/07/15 Python