源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-01-31 13:31 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:python中子类继承父类的__init__方法实例
[b]前言[/b] 使用Python写过面向对象的代码的同学,可能对[code] __init__ [/code]方法已经非常熟悉了[code],__init__[/code]方法在类的一个对象被建立时,马上运行。这个方法可以用来对你的对象做一些你希望的 初始化 。 [b]注意:[/b]这个名称的开始和结尾都是双下划线。 [b]父类A[/b]
class A(object):
 def __init__(self, name):
  self.name=name
  print "name:", self.name
 def getName(self):
  return 'A ' + self.name
子类不重写[code]__init__ [/code], 实例化子类时,会自动调用父类定义的[code]__init__[/code]
class B(A):
 def getName(self):
  return 'B '+self.name
 
if __name__=='__main__':
 b=B('hello')
 print b.getName()
[b]执行[/b]
$python lei2.py 
name: hello
B hello
但重写了[code]__init__[/code]时,实例化子类,就不会调用父类已经定义的[code]__init__[/code]
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()
[b]执行[/b]
$python lei2.py 
hi
B hello
为了能使用或扩展父类的行为,最好显示调用父类的[code]__init__[/code]方法
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()
[b]执行[/b]
$python lei2.py
name: hello
hi
B hello
[b]总结[/b] 以上就是关于python子类继承父类的__init__方法的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部