python中子类继承父类的__init__方法实例

作者:jihite 时间:2022-05-27 19:37:21 

前言

使用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

来源:http://www.cnblogs.com/kaituorensheng/p/5693677.html

标签:python,子类,父类,init
0
投稿

猜你喜欢

  • python实现textrank关键词提取

    2021-11-01 16:47:58
  • python 模拟银行转账功能过程详解

    2021-07-16 02:49:15
  • js实现黑白div块画空心的图形

    2023-08-29 07:24:21
  • Java连接sqlserver2008数据库代码

    2023-07-02 10:22:17
  • 我所钟爱的HTML5资源

    2010-07-23 09:25:00
  • ASP.NET Core MVC基础学习之局部视图(Partial Views)

    2023-07-19 21:02:37
  • asp如何最准确地统计在线用户数?

    2010-07-11 21:12:00
  • Django中实现点击图片链接强制直接下载的方法

    2023-08-03 13:29:19
  • 解决pycharm中导入自己写的.py函数出错问题

    2023-07-09 12:12:05
  • 超级连接的title提示中如何换行实现多行显示

    2008-03-07 15:57:00
  • PHP levenshtein()函数用法讲解

    2023-06-01 15:20:29
  • 注册和填表中常见的中英文对照

    2008-07-26 12:12:00
  • 使用面向对象的技术创建高级JavaScript Web 应用程序

    2008-11-03 13:00:00
  • ASP程序中使用断开的数据记录集的代码

    2012-12-04 20:20:28
  • MSSQL 基本语法及实例操作语句

    2012-07-11 15:40:09
  • 服务端XMLHTTP(ServerXMLHTTP in ASP)进阶应用-User Agent伪装

    2008-11-11 12:29:00
  • Form Post提交容量大的数据

    2011-03-31 10:53:00
  • Photoshop设计制作网站流程图解

    2007-10-25 12:06:00
  • PHP获取特殊时间戳的方法整理

    2023-05-25 00:47:36
  • Python 聊聊socket中的listen()参数(数字)到底代表什么

    2022-10-17 00:49:25
  • asp之家 网络编程 m.aspxhome.com