python 子类继承父类__init__(转载)
2024-09-06 09:24:40
转载:
http://www.jb51.net/article/100195.htm
前言
使用Python写过面向对象的代码的同学,可能对 __init__
方法已经非常熟悉了,__init__
方法在类的一个对象被建立时,马上运行。这个方法可以用来对你的对象做一些你希望的 初始化 。
注意:这个名称的开始和结尾都是双下划线。
父类A
1
2
3
4
5
6
|
class A( object ): def __init__( self , name): self .name = name print "name:" , self .name def getName( self ): return 'A ' + self .name |
子类不重写__init__
, 实例化子类时,会自动调用父类定义的__init__
1
2
3
4
5
6
7
|
class B(A): def getName( self ): return 'B ' + self .name if __name__ = = '__main__' : b = B( 'hello' ) print b.getName() |
执行
1
2
3
|
$python lei2.py name: hello B hello |
但重写了__init__
时,实例化子类,就不会调用父类已经定义的__init__
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
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() |
执行
1
2
3
|
$python lei2.py hi B hello |
为了能使用或扩展父类的行为,最好显示调用父类的__init__
方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
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() |
执行
1
2
3
4
|
$python lei2.py name: hello hi B hello |
总结
以上就是关于python子类继承父类的__init__方法的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
最新文章
- CSS中使用text-transform实现首字母大写
- Redis学习笔记4-Redis配置详解
- Java Socket编程
- 如何将GridViewEX升级到UWP(Universal Windows Platform)平台
- 5分钟实现VS2010整合NUnit进行单元测试
- ubuntu sublime-text package control
- SQL SERVER NVARCHAR字段INSERT 中文乱码问题解决
- oracle 零散知识汇集
- COCI2014-2015CONTEST#7——POLICE
- Jdk1.6 JUC源码解析(6)-locks-AbstractQueuedSynchronizer
- 21.C++- ";++";操作符重载、隐式转换之explicit关键字、类的类型转换函数
- 关于项目中ajax 操作 原生项目遇到的问题
- yii2查询汇总
- wine和cygwin安装使用教程
- <;Linux>; SSH配置之后 SHH slave1 测试 error:SSH: command not found
- 20135202闫佳歆--week3 构造一个简单的Linux系统MenuOs--学习笔记
- python 排序 sorted 如果第一个条件 相同 则按第二个条件排序
- gitlab数据迁移
- Android中openmax实现框架
- (转) MVC身份验证及权限管理-1
热门文章
- error: call of overloaded ‘sqrt(double&;)’ is ambiguous
- windows命令整理
- 在idea中把springboot项目打成jar包遇到的问题(没有主清单属性)
- python学习笔记(十六)python操作redis数据库
- XMLUtil
- ueditor编辑器中从word中复制带图片的信息的操作演示
- sublime px转rem插件
- 笨办法学Python(learn python the hard way)--练习程序31-35
- MyView.java 自己画的view
- jsc2019_qualE Card Collector