优先阅读:这个是我这个菜鸟自己理解的,误导别人概不负责~哈哈哈哈哈哈哈
一、何时要使用super.__init__():
我理解是,当需要继承父类构造函数中的内容,且子类需要在父类的基础上补充时,使用super().__init__()方法。
在这段代码中,New_person这个类即需要用到父类中name和age,又需要新增sex这个参数。这时就需要用到super().__init__()来继承父类中的name,和age。super().__init__()其实就是一个调用父类中__init__的函数。由于父类中的init有两个参数,所以super().__init__()也要传两个参数。
通过子类中的__init__函数获取到传的参数,并传给父类,如图中的传值关系。
当父类中的参数带有默认值时,super().__init__()调用父类中__init__也可以不传值(或传self),由于传值时self是可以省略的,所以写或不写结果是一样的。self在子类中代表子类本身,把self传到super().__init__()函数中,代表子类的__init__函数中的内容传给了父类。
只不过是通过子类中重写后传到父类中的。既然已经在子类中重写了self.name 、self.age、self.sex,