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 相关文章推荐
pycharm 使用心得(一)安装和首次使用
Jun 05 Python
Python中解析JSON并同时进行自定义编码处理实例
Feb 08 Python
Python中设置变量作为默认值时容易遇到的错误
Apr 03 Python
Python实现提取谷歌音乐搜索结果的方法
Jul 10 Python
Python sklearn KFold 生成交叉验证数据集的方法
Dec 11 Python
Python替换月份为英文缩写的实现方法
Jul 15 Python
Python使用微信接入图灵机器人过程解析
Nov 04 Python
TFRecord格式存储数据与队列读取实例
Jan 21 Python
详解Django配置JWT认证方式
May 09 Python
Python tkinter实现简单加法计算器代码实例
May 13 Python
Python实现小黑屋游戏的完整实例
Jan 06 Python
Python爬虫基础讲解之请求
May 13 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开发不能违背的安全规则 过滤用户输入
2011/05/01 PHP
Server.HTMLEncode让代码在页面里显示为源代码
2013/12/08 PHP
CodeIgniter模板引擎使用实例
2014/07/15 PHP
标准版Eclipse搭建PHP环境的详细步骤
2015/11/18 PHP
thinkphp项目部署到Linux服务器上报错“模板不存在”如何解决
2016/04/27 PHP
PHP后门隐藏的一些技巧总结
2020/11/04 PHP
javascript 去字符串空格终极版(支持utf8)
2009/11/14 Javascript
javascript用函数实现对象的方法
2015/05/14 Javascript
各式各样的导航条效果css3结合jquery代码实现
2016/09/17 Javascript
使用jquery如何获取时间
2016/10/13 Javascript
JS字符串false转boolean的方法(推荐)
2017/03/08 Javascript
详解angular 中的自定义指令之详解API
2017/06/20 Javascript
jQuery简介_动力节点Java学院整理
2017/07/04 jQuery
Angular移动端页面input无法输入的解决方法
2017/11/14 Javascript
React Native使用fetch实现图片上传的示例代码
2018/03/07 Javascript
详解Webpack-dev-server的proxy用法
2018/09/08 Javascript
js实现经典贪吃蛇小游戏
2020/03/19 Javascript
[36:33]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.29
2020/12/02 DOTA
在Python中使用异步Socket编程性能测试
2014/06/25 Python
Python实现遍历windows所有窗口并输出窗口标题的方法
2015/03/13 Python
Python制作数据导入导出工具
2015/07/31 Python
python3判断url链接是否为404的方法
2018/08/10 Python
Python调用接口合并Excel表代码实例
2020/03/31 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
2020/04/08 Python
Python操控mysql批量插入数据的实现方法
2020/10/27 Python
澳大利亚宠物商店:Petbarn
2017/11/18 全球购物
介绍一下如何利用路径遍历进行攻击及如何防范
2014/01/19 面试题
介绍一下XMLHttpRequest对象
2012/02/12 面试题
考博自荐信
2013/10/25 职场文书
2014年百日安全生产活动总结
2014/05/04 职场文书
幼师求职自荐信
2014/05/31 职场文书
反四风个人对照检查材料思想汇报
2014/09/25 职场文书
六年级学生评语大全
2014/12/26 职场文书
2019年妇科护士的自我鉴定(3篇)
2019/09/26 职场文书
Python激活Anaconda环境变量的详细步骤
2021/06/08 Python
Java常用函数式接口总结
2021/06/29 Java/Android