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读取ini文件、操作mysql、发送邮件实例
Jan 01 Python
Python多进程fork()函数详解
Feb 22 Python
使用Python在Windows下获取USB PID&VID的方法
Jul 02 Python
Python中一个for循环循环多个变量的示例
Jul 16 Python
pytest中文文档之编写断言
Sep 12 Python
Selenium基于PIL实现拼接滚动截图
Apr 10 Python
Python基于os.environ从windows获取环境变量
Jun 09 Python
详解Windows下PyCharm安装Numpy包及无法安装问题解决方案
Jun 18 Python
使用sublime text3搭建Python编辑环境的实现
Jan 12 Python
python爬虫线程池案例详解(梨视频短视频爬取)
Feb 20 Python
如何正确理解python装饰器
Jun 15 Python
Python 的 sum() Pythonic 的求和方法详细
Oct 16 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
超神学院:鹤熙已踏入神圣领域,实力不比凯莎弱
2020/03/02 国漫
php入门学习知识点八 PHP中for循环基本应用之九九乘法口绝表
2011/07/14 PHP
php中将字符串转为HTML的实体引用的一个类
2013/02/03 PHP
php调用nginx的mod_zip模块打包ZIP文件
2014/06/11 PHP
实例讲解php数据访问
2016/05/09 PHP
php微信开发之批量生成带参数的二维码
2016/06/26 PHP
php日志函数error_log用法实例分析
2019/09/23 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
jQuery Ajax 实例全解析
2011/04/20 Javascript
基于jQuery的前端数据通用验证库
2011/08/08 Javascript
node.js中的buffer.toJSON方法使用说明
2014/12/14 Javascript
node.js中的fs.fsync方法使用说明
2014/12/15 Javascript
在AngularJS中使用jQuery的zTree插件的方法
2016/04/21 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
2016/05/10 Javascript
第五篇Bootstrap 排版
2016/06/21 Javascript
JSON与String互转的实现方法(Javascript)
2016/09/27 Javascript
浅谈发布订阅模式与观察者模式
2019/04/09 Javascript
[01:11:32]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python面向对象程序设计类的封装与继承用法示例
2019/04/12 Python
python儿童学游戏编程知识点总结
2019/06/03 Python
利用Python复制文件的9种方法总结
2019/09/02 Python
python tkinter图形界面代码统计工具(更新)
2019/09/18 Python
python TCP包注入方式
2020/05/05 Python
Pycharm自动添加文件头注释和函数注释参数的方法
2020/10/23 Python
python excel多行合并的方法
2020/12/09 Python
css3实现背景图片拉伸效果像桌面壁纸一样
2013/08/19 HTML / CSS
IE9对HTML5中部分属性不支持的原因分析
2014/10/15 HTML / CSS
html5 制作地图当前定位箭头的方法示例
2020/01/10 HTML / CSS
适合各种场合的美食礼品:Harry & David
2016/08/03 全球购物
中粮集团旗下食品网上购物网站:我买网
2016/09/22 全球购物
French Connection官网:女装、男装及家居用品
2019/03/18 全球购物
Shopee菲律宾:在线购买和出售
2019/11/25 全球购物
广州御银科技股份有限公司试卷(C++)
2016/11/04 面试题
经理秘书岗位职责
2013/11/14 职场文书
施工安全协议书
2013/12/11 职场文书
高中生操行评语大全
2014/04/25 职场文书