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登录QQ邮箱发信的实现代码
Feb 10 Python
python模拟登录并且保持cookie的方法详解
Apr 04 Python
Python实现PS图像调整颜色梯度效果示例
Jan 25 Python
python3中的md5加密实例
May 29 Python
Django模型修改及数据迁移实现解析
Aug 01 Python
Python学习笔记之Zip和Enumerate用法实例分析
Aug 14 Python
Python 动态变量名定义与调用方法
Feb 09 Python
keras slice layer 层实现方式
Jun 11 Python
Pycharm2020.1安装中文语言插件的详细教程(不需要汉化)
Aug 07 Python
Pytest allure 命令行参数的使用
Apr 18 Python
python代码实现备忘录案例讲解
Jul 26 Python
Python 恐龙跑跑小游戏实现流程
Feb 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
PHP4实际应用经验篇(3)
2006/10/09 PHP
解析PHP对现有搜索引擎的调用
2013/06/25 PHP
zen_cart实现支付前生成订单的方法
2016/05/06 PHP
PHPExcel中文帮助手册|PHPExcel使用方法(分享)
2017/06/09 PHP
laravel 框架实现无限级分类的方法示例
2019/10/31 PHP
php中使用array_filter()函数过滤数组实例讲解
2021/03/03 PHP
网页开发中的容易忽略的问题 javascript HTML中的table
2009/04/15 Javascript
asp.net HttpHandler实现图片防盗链
2009/11/09 Javascript
Exjs 入门篇
2010/04/07 Javascript
jQuery getJSON()+.ashx 实现分页(改进版)
2013/03/28 Javascript
解析javascript 浏览器关闭事件
2013/07/08 Javascript
javascript修改IMG标签的src问题
2014/03/28 Javascript
使用jQuery和Bootstrap实现多层、自适应模态窗口
2014/12/22 Javascript
基于jQuery1.9版本如何判断浏览器版本类型
2016/01/12 Javascript
初步使用Node连接Mysql数据库
2016/03/03 Javascript
浅谈javascript中遇到的字符串对象处理
2016/11/18 Javascript
微信小程序 图片边框解决方法
2017/01/16 Javascript
jQuery实现表格冻结顶栏效果
2017/08/20 jQuery
Vuex 单状态库与多模块状态库详解
2018/12/11 Javascript
在layui.use 中自定义 function 的正确方法
2019/09/16 Javascript
[00:15]天涯墨客终极技能展示
2018/08/25 DOTA
[52:26]完美世界DOTA2联赛决赛 FTD vs Phoenix 第一场 11.08
2020/11/11 DOTA
简单介绍Python2.x版本中的cmp()方法的使用
2015/05/20 Python
斯图尔特·韦茨曼鞋加拿大官网:Stuart Weitzman加拿大
2019/10/13 全球购物
Piercing Pagoda官网:耳环、戒指、项链、手链等
2020/09/28 全球购物
葡萄牙语专业个人求职信
2013/12/10 职场文书
银行实习生的自我评价
2014/01/13 职场文书
单位承诺书格式
2014/05/21 职场文书
新闻专业毕业生求职信
2014/08/08 职场文书
乡镇党的群众路线对照检查材料
2014/09/24 职场文书
学校班子个人对照检查材料思想汇报
2014/09/27 职场文书
投标人法定代表人授权委托书格式
2014/09/28 职场文书
受资助学生感谢信
2015/01/21 职场文书
公司员工奖惩制度
2015/08/04 职场文书
小学生大队委竞选稿
2015/11/20 职场文书
mysql字段为NULL索引是否会失效实例详解
2022/05/30 MySQL