python入门到精通python面向对象super用法
Posted 大数据小禅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python入门到精通python面向对象super用法相关的知识,希望对你有一定的参考价值。
🚀 作者 :“大数据小禅”
🚀 粉丝福利 :加入小禅的大数据社群
🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬
子类有自己构造的时候会自动去覆盖父类的一个方法,即两个类上一个类有init构造,作为父类,另一个类作为子类去继承,子类如果没有定义init方法,子类的构造就不会被父类覆盖,但是,如果子类定义了自己的init构造方法,那么就会覆盖掉父类的方法,总的来说就是子类自己写了构造方法init就不会去调用父类的init构造方法了,而是会覆盖。上一篇博文那个波斯猫的例子就是一个典范,在子类实例化调用父类init里面的关键字参数的值可以打印,而父类中在别的函数定义的关键词参数则不可以打印,而打印除init类中的其他关键字参数也没有必要,因为调用的时候你可以赋值。在上一篇博文中字子类面前充定义init构造函数,那么父类构造中定义的全部关键字参数将全部失效。
super的作用及用法:
子类的构造里面要调用父类的一个构造又不被覆盖的话就要用到super了
调用父类构造的第一种方法
class Animal:
def __init__(self,name):
self.name=name
class Dog(Animal):
def __init__(self):
Animal.__init__(self,"dog")
print("dog")
dog=Dog()
print(dog.__dict__)
输出:dog 'name':'dog'
使用super进行调用并赋值:
class Animal:
def __init__(self,name):
self.name=name
class Dog(Animal):
def __init__(self):
super(Dog,self).__init__("dog")
print("dog")
dog=Dog()
print(dog.__dict__)
print(dog.name)
输出:
dog
'name': 'dog'
dog
以上是关于python入门到精通python面向对象super用法的主要内容,如果未能解决你的问题,请参考以下文章
Python从入门到精通(十三)Python面向对象的开发,没有对象怎么能行呢?
Python从入门到精通(十三)Python面向对象的开发,没有对象怎么能行呢?