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读取浮点数和读取文本文件示例
May 06 Python
Python中绑定与未绑定的类方法用法分析
Apr 29 Python
python爬虫系列Selenium定向爬取虎扑篮球图片详解
Nov 15 Python
Django中使用第三方登录的示例代码
Aug 20 Python
浅析python的Lambda表达式
Feb 27 Python
python字符串和常用数据结构知识总结
May 21 Python
python的pytest框架之命令行参数详解(上)
Jun 27 Python
Python正则表达式匹配数字和小数的方法
Jul 03 Python
Python shutil模块用法实例分析
Oct 02 Python
python3中的eval和exec的区别与联系
Oct 10 Python
在tensorflow下利用plt画论文中loss,acc等曲线图实例
Jun 15 Python
Python数据处理的三个实用技巧分享
Apr 01 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函数间的参数传递(值传递/引用传递)
2013/09/23 PHP
微信营销平台系统?刮刮乐的开发
2014/06/10 PHP
php调用shell的方法
2014/11/05 PHP
php 批量查询搜狗sogou代码分享
2015/05/17 PHP
PHP递归创建多级目录
2015/11/05 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
laravel框架模型和数据库基础操作实例详解
2020/01/25 PHP
PHP查找一列有序数组是否包含某值的方法
2020/02/07 PHP
浅析document.createDocumentFragment()与js效率
2013/07/08 Javascript
jQuery背景插件backstretch使用指南
2015/04/21 Javascript
JS实现的表格操作类详解(添加,删除,排序,上移,下移)
2015/12/22 Javascript
基于Javascript实现的不重复ID的生成器
2016/12/25 Javascript
DWR3 访问WEB元素的两种方法实例详解
2017/01/03 Javascript
JavaScript中利用for循环遍历数组
2017/01/15 Javascript
JSON键值对序列化和反序列化解析
2017/01/24 Javascript
vue2.0使用swiper组件实现轮播效果
2017/11/27 Javascript
前端防止用户重复提交js实现代码示例
2018/09/07 Javascript
JS实现图片拖拽交换效果
2018/11/30 Javascript
使用layui实现树形结构的方法
2019/09/20 Javascript
Vue 中使用 typescript的方法详解
2020/02/17 Javascript
完美解决vue 中多个echarts图表自适应的问题
2020/07/19 Javascript
Chrome插件开发系列一:弹窗终结者开发实战
2020/10/02 Javascript
[07:57]2018DOTA2国际邀请赛寻真——PSG.LGD凤凰浴火
2018/08/12 DOTA
Python入门及进阶笔记 Python 内置函数小结
2014/08/09 Python
用Python计算三角函数之acos()方法的使用
2015/05/15 Python
Django跨域请求问题的解决方法示例
2018/06/16 Python
Python笔记之观察者模式
2019/11/20 Python
ORACLE十问
2015/04/20 面试题
java程序员面试交流
2012/11/29 面试题
大学生护理专业自荐信
2013/10/03 职场文书
单位未婚证明范本
2014/01/18 职场文书
音乐教育感言
2014/03/05 职场文书
小学生优秀评语大全
2014/04/22 职场文书
学校师德师风整改措施
2014/10/27 职场文书
2016春季幼儿园小班开学寄语
2015/12/03 职场文书
MySQL数据库超时设置配置的方法实例
2021/10/15 MySQL