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 13 Python
浅谈Pandas中map, applymap and apply的区别
Apr 10 Python
django反向解析URL和URL命名空间的方法
Jun 05 Python
python批量修改图片大小的方法
Jul 24 Python
对python产生随机的二维数组实例详解
Dec 13 Python
为什么你还不懂得怎么使用Python协程
May 13 Python
python打包exe开机自动启动的实例(windows)
Jun 28 Python
使用python写一个自动浏览文章的脚本实例
Dec 05 Python
python库skimage给灰度图像染色的方法示例
Apr 27 Python
Python 绘制可视化折线图
Jul 22 Python
Python 列表推导式需要注意的地方
Oct 23 Python
详解python定时简单爬取网页新闻存入数据库并发送邮件
Nov 27 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开发中常用的8个小技巧
2008/08/27 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
2016/03/21 PHP
PHP设计模式之观察者模式定义与用法示例
2018/08/04 PHP
PHP autoload使用方法及步骤详解
2020/09/05 PHP
javascript firefox 自动加载iframe 自动调整高宽示例
2013/08/27 Javascript
判定是否原生方法的JS代码
2013/11/12 Javascript
javascript模拟枚举的简单实例
2014/03/06 Javascript
代码分析jQuery四种静态方法使用
2015/07/23 Javascript
jQuery+css实现的切换图片功能代码
2016/01/27 Javascript
AngularJS中$injector、$rootScope和$scope的概念和关联关系深入分析
2017/01/19 Javascript
jQuery Json数据格式排版高亮插件json-viewer.js使用方法详解
2017/06/12 jQuery
vue系列之动态路由详解【原创】
2017/09/10 Javascript
jquery中done和then的区别(详解)
2017/12/19 jQuery
vue 2.0 购物车小球抛物线的示例代码
2018/02/01 Javascript
Vue2.0 给Tab标签页和页面切换过渡添加样式的方法
2018/03/13 Javascript
AngularJS实现动态切换样式的方法分析
2018/06/26 Javascript
小程序组件之自定义顶部导航实例
2019/06/12 Javascript
Vue-cli项目部署到Nginx服务器的方法
2019/11/01 Javascript
python和pyqt实现360的CLable控件
2014/02/21 Python
零基础写python爬虫之urllib2中的两个重要概念:Openers和Handlers
2014/11/05 Python
Python处理文本文件中控制字符的方法
2017/02/07 Python
浅谈flask源码之请求过程
2018/07/26 Python
浅谈numpy生成数组的零值问题
2018/11/12 Python
代码总结Python2 和 Python3 字符串的区别
2020/01/28 Python
Django实现后台上传并显示图片功能
2020/05/29 Python
基于Python实现2种反转链表方法代码实例
2020/07/06 Python
Python2与Python3关于字符串编码处理的差别总结
2020/09/07 Python
德国EGOIST网店:销售畅销的设计师品牌
2017/04/18 全球购物
香港家用健身器材、运动器材及健康美容仪器专门店:FitBoxx
2019/12/05 全球购物
垃圾回收的优点和原理。并考虑2种回收机制
2016/10/16 面试题
成人高等教育毕业生自我鉴定
2013/10/22 职场文书
安全责任书模板
2014/07/22 职场文书
组工干部对照检查材料
2014/08/25 职场文书
安全生产先进个人事迹材料
2014/12/30 职场文书
办公室管理规章制度
2015/08/04 职场文书
请求模块urllib之PYTHON爬虫的基本使用
2022/04/08 Python