这篇文章主要知识点是关于python、子类继承父类、__init__、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书
前言
使用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__方法的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。
Copyright 2018-2020 www.xz577.com 码农之家
版权投诉 / 书籍推广 / 赞助:520161757@qq.com
Python子类继承父类构造函数详解
如果在子类中需要父类的构造方法就需要显式地调用父类的构造方法,或者不重写父类的构造方法。 子类不重写 __init__,实例化子类时,会自动调用父类定义的 __init__。 class Father(object): def __init__(self, name): self.name=name print ( "name: %s" %( self.name) ) def getName(self): return 'Father ' + self.name class Son(Father): def getName(self): return 'Son '+self.name if __name__=='__main__': son=Son('runoob') print ( son.getName() ) 输出结果为: name: runoob Son runoob 如果重写了__init__ 时,实例化子类,就不会调用父类已经定义的 __init__,语法格式如下: class Father(object): def __init__(self, name): self.name=name print ( "name: %s" %( self.name) ) def getName(self): return 'Father ' + self.name class Son(Father): def __init__(self, name): print ( "hi" ) self.name = name def getName(self): return 'Son '+self.name if __name__=='__main__': son=Son('runoob') print ( son.getName() ) 输出结……