开发者学堂课程【Python 语言基础 3:函数、面向对象、异常处理:Super()】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/601/detail/8752
Super()
目录:
一、父类中所有方法会被子类继承
二、调用父类的—in it—来初始化父类中定义的属性
一、父类中的所有方法都会被子类继承,包括特殊方法,也可以重写特殊方法
Animal 和 Dog 来演示,这两个类,改完扩展名,是需要重新打开一下的,写完了还是两个类,一个是 Animal 一个是 Dog。
那写这两个类,还是说了继承的话,属性和方法都会被继承,这个类里是没有属性的,Animal 并没有属性,所以属性谈不上继承,Animal 来定义属性,in it 来一个self ,再来一个 name,最后直接来一个这个 self,加下划线 name 等于 name,也就是添加了一个 name属性,name 属性可以给它设置一个 def 的方法,这儿来一个 name,直接理论下划线 name。
再用 def 的方法,直接来 name 一个 setter 直接定义,name 里边儿来一个 self 的方法,还要传值来一个 name,这里要进行赋值,Self 下划线 name 等于一个name,刚才 Animal 是没有意义的,也就是没有属性的,现在 Animal 里边加了属性。
再去创建,这个 Dog 对象还能不能直接去创建?直接 d 等于一个 Dog,到这儿保存了再执行,结果是报错了,因为少了参数。
二、调用父类的—in it—来初始化父类中定义的属性
它是特殊方法,也叫魔术方法,这个方法也会被他所继承,所以写到 animal 里,但是由于继承了 animal。它就相当于写小道理,这里边儿传了 name,而创建的时候是没有传,没有传就报错了,在这需要传一个名字,保存再执行,这时候就没问题了,然后在来打印一下,name 或取样的名字,执行这时候就获取到了,也可以name 等于小黑,保存,也可以设置了。
如果说父类中有十个属性,不写就保存再执行会保错,因为参数给多了,是没有name,所以还得写上,希望可以直接调用父类,来初始化父类中定义的属性,意思是,父类中的属性是有我们这个父类去调用的。
如果说父类中有十个属性,不写就保存再执行会保错,因为参数给多了,是没有name,所以还得写上,希望可以直接调用父类,来初始化父类中定义的属性,意思是,父类中的属性是有我们这个父类去调用的。