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中使用PIL模块对图片进行高斯模糊处理的教程
May 05 Python
Python的净值数据接口调用示例分享
Mar 15 Python
Python实现网站注册验证码生成类
Jun 08 Python
Python MySQL数据库连接池组件pymysqlpool详解
Jul 07 Python
为什么Python中没有"a++"这种写法
Nov 27 Python
学习python的前途 python挣钱
Feb 27 Python
Python 爬虫实现增加播客访问量的方法实现
Oct 31 Python
如何基于python实现脚本加密
Dec 28 Python
python实现的分层随机抽样案例
Feb 25 Python
浅谈python量化 双均线策略(金叉死叉)
Jun 03 Python
pandas数据处理之绘图的实现
Jun 15 Python
Python自动化测试PO模型封装过程详解
Jun 22 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
Fatal error: Call to undefined function curl_init()解决方法
2010/04/09 PHP
PHP数组及条件,循环语句学习
2012/11/11 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
2016/03/07 PHP
php compact 通过变量创建数组
2016/11/15 PHP
php命名空间设计思想、用法与缺点分析
2019/07/17 PHP
php的命名空间与自动加载实现方法
2019/08/25 PHP
jquery tab插件制作实现代码
2010/06/22 Javascript
在IE浏览器中resize事件执行多次的解决方法
2011/07/12 Javascript
JS实现多物体缓冲运动实例代码
2013/11/29 Javascript
给html超链接设置事件不使用href来完成跳
2014/04/20 Javascript
js实现精确到秒的倒计时效果
2016/05/29 Javascript
js中用cssText设置css样式的简单方法
2016/09/19 Javascript
JavaScript中利用for循环遍历数组
2017/01/15 Javascript
angularjs实现下拉列表的选中事件示例
2017/03/03 Javascript
详解Vue使用 vue-cli 搭建项目
2017/04/20 Javascript
jQuery 实时保存页面动态添加的数据的示例
2017/08/14 jQuery
Node.js fs模块原理及常见用途
2020/10/22 Javascript
[00:34]TI7不朽珍藏III——纯金地穴编织者饰品展示
2017/07/15 DOTA
Python中的FTP通信模块ftplib的用法整理
2016/07/08 Python
解决pandas无法在pycharm中使用plot()方法显示图像的问题
2018/05/24 Python
Python3 实现文件批量重命名示例代码
2019/06/03 Python
python tkinter组件摆放方式详解
2019/09/16 Python
python RC4加密操作示例【测试可用】
2019/09/26 Python
tensorflow 模型权重导出实例
2020/01/24 Python
Python3操作YAML文件格式方法解析
2020/04/10 Python
基于python实现对文件进行切分行
2020/04/26 Python
python实现邮件循环自动发件功能
2020/09/11 Python
基层干部十八大感言
2014/01/19 职场文书
本科毕业生自荐信
2014/05/26 职场文书
2014年小学国庆节活动方案
2014/09/16 职场文书
2015毕业生实习期工作总结
2015/04/09 职场文书
2015年乡镇纪委工作总结
2015/05/26 职场文书
导游词之麻姑仙境
2019/11/18 职场文书
只用Python就可以制作的简单词云
2021/06/07 Python
使用ORM新增数据在Mysql中的操作步骤
2021/07/26 MySQL
python+opencv实现目标跟踪过程
2022/06/21 Python