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 相关文章推荐
Django中模型Model添加JSON类型字段的方法
Jun 17 Python
python获取list下标及其值的简单方法
Sep 12 Python
对Python Class之间函数的调用关系详解
Jan 23 Python
Python读取指定日期邮件的实例
Feb 01 Python
Django框架验证码用法实例分析
May 10 Python
使用python+whoosh实现全文检索
Dec 09 Python
Python类和实例的属性机制原理详解
Mar 21 Python
520使用Python实现“我爱你”表白
May 20 Python
详解scrapy内置中间件的顺序
Sep 28 Python
python实现web邮箱扫描的示例(附源码)
Mar 30 Python
python如何获取网络数据
Apr 11 Python
Pandas 数据编码的十种方法
Apr 20 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导出EXCEL快速开发指南--PHPEXCEL的使用详解
2013/06/03 PHP
thinkphp实现图片上传功能分享
2014/03/04 PHP
PHP中仿制 ecshop验证码实例
2017/01/06 PHP
Yii2下session跨域名共存的解决方案
2017/02/04 PHP
PHP获取日期对应星期、一周日期、星期开始与结束日期的方法
2018/06/22 PHP
实例:尽可能写友好的Javascript代码
2006/10/09 Javascript
jQuery 操作option的实现代码
2011/03/03 Javascript
怎么清空javascript数组
2013/05/11 Javascript
vuejs在解析时出现闪烁的原因及防止闪烁的方法
2016/09/19 Javascript
Bootstrap基本插件学习笔记之Tooltip提示工具(18)
2016/12/08 Javascript
angular中使用Socket.io实例代码
2017/06/03 Javascript
js学习总结之dom2级事件基础知识详解
2017/07/27 Javascript
js插件实现图片滑动验证码
2020/09/29 Javascript
详细分析jsonp的原理和实现方式
2017/11/20 Javascript
webpack组织模块打包Library的原理及实现
2018/03/10 Javascript
详解Nuxt.js部署及踩过的坑
2018/08/07 Javascript
vue+axios 前端实现的常用拦截的代码示例
2018/08/23 Javascript
vue配置font-awesome5的方法步骤
2019/01/27 Javascript
vue 修改 data 数据问题并实时显示操作
2020/09/07 Javascript
[01:33:30]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第二场 2月5日
2021/03/11 DOTA
Django静态资源URL STATIC_ROOT的配置方法
2014/11/08 Python
python中循环语句while用法实例
2015/05/16 Python
Python Numpy 数组的初始化和基本操作
2018/03/13 Python
在PyCharm中三步完成PyPy解释器的配置的方法
2018/10/29 Python
python绘制热力图heatmap
2020/03/23 Python
Python GUI编程完整示例
2019/04/04 Python
Python实现动态循环输出文字功能
2020/05/07 Python
土木工程应届生求职信
2013/10/31 职场文书
计算机应用专业学生的自我评价分享
2013/11/03 职场文书
建筑工程毕业生自我鉴定
2014/01/14 职场文书
活动志愿者自荐信
2014/01/27 职场文书
大学生见习报告范文
2014/11/03 职场文书
安全生产协议书
2016/03/22 职场文书
2016创先争优活动党员公开承诺书
2016/03/24 职场文书
同学联谊会邀请函
2019/06/24 职场文书
深入理解pytorch库的dockerfile
2022/06/10 Python