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 21 Python
python中使用urllib2伪造HTTP报头的2个方法
Jul 07 Python
Python读取mp3中ID3信息的方法
Mar 05 Python
解决python2.7用pip安装包时出现错误的问题
Jan 23 Python
pandas创建新Dataframe并添加多行的实例
Apr 08 Python
python学生信息管理系统(完整版)
Apr 05 Python
对Python random模块打乱数组顺序的实例讲解
Nov 08 Python
PyQt弹出式对话框的常用方法及标准按钮类型
Feb 27 Python
python模拟鼠标点击和键盘输入的操作
Aug 04 Python
对python中return与yield的区别详解
Mar 12 Python
python程序输出无内容的解决方式
Apr 09 Python
python 详解turtle画爱心代码
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
PHP stream_context_create()作用和用法分析
2011/03/29 PHP
php学习笔记(三)操作符与控制结构
2011/08/06 PHP
深入PHP magic quotes的详解
2013/06/17 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
2016/05/12 PHP
ThinkPHP打水印及设置水印位置的方法
2016/10/14 PHP
laravel 事件/监听器实例代码
2019/04/12 PHP
Jquery 插件学习实例1 插件制作说明与tableUI优化
2010/04/02 Javascript
表单序列化与jq中的serialize使用示例
2014/02/21 Javascript
使用delegate方法为一个tr标签加一个链接
2014/06/27 Javascript
JavaScript函数定义的常见注意事项小结
2014/09/16 Javascript
jQuery中noconflict函数的实现原理分解
2015/02/03 Javascript
JavaScript6 let 新语法优势介绍
2016/07/15 Javascript
js中遍历对象的属性和值的方法
2016/07/27 Javascript
AngularJS入门教程之REST和定制服务详解
2016/08/19 Javascript
jQuery插件zTree实现获取一级节点数据的方法
2017/03/08 Javascript
详谈angularjs中路由页面强制更新的问题
2017/04/24 Javascript
webpack手动配置React开发环境的步骤
2018/07/02 Javascript
详解webpack引入第三方库的方式以及注意事项
2019/01/15 Javascript
彻底揭秘keep-alive原理(小结)
2019/05/05 Javascript
使用webpack搭建vue项目及注意事项
2019/06/10 Javascript
JavaScript 截取字符串代码实例
2019/09/05 Javascript
node.js域名解析实现方法详解
2019/11/05 Javascript
js实现点赞按钮功能的实例代码
2020/03/06 Javascript
让 python 命令行也可以自动补全
2014/11/30 Python
图文详解WinPE下安装Python
2016/05/17 Python
Python标准库之collections包的使用教程
2017/04/27 Python
pytorch permute维度转换方法
2018/12/14 Python
解决Mac下使用python的坑
2019/08/13 Python
国际商务专业职业生涯规划书范文
2014/01/17 职场文书
军训鉴定表自我鉴定
2014/02/13 职场文书
社区元宵节活动总结
2015/02/06 职场文书
学雷锋活动简报
2015/07/20 职场文书
签约仪式致辞
2015/07/30 职场文书
iPhone13 Pro外观确定,升级4800万镜头,4月20日发新品
2021/04/15 数码科技
将Python代码打包成.exe可执行文件的完整步骤
2021/05/12 Python
详解Python常用的魔法方法
2021/06/03 Python