如上小猫和人类都有相同的行为/函数,也就是说部分的函数发生了重复。
这这与计算机设计中的DRY原则相背离了。
所谓DRY是指Don't Repeat Yourself。
而可以通过继承的方式将重复的内容进行继承,从而减少了代码量。
属性是指具有什么,方法是指能做什么。
在python的继承写法中,可采用class 子类(要继承的类)
的写法来进行继承。
如果子类没有实例化,则这个子类会追溯到父类来进行对属性的实例化。
而对于方法来说,如果对于一个实例调用方法,并不在子类上,也会追溯到父类,当然如果这个子类本身就具有这个方法,则会直接进行调用。
当然构造函数也是如此。如上图,如果没预留好name和sex,jojo和男的信息将会丢失。而如果预留的话,要对信息进行处理,而这些信息是重复的。于是可以用super()
来调用父类的方法。
而在深度学习中,常常会将调的包nn.Module来进行继承。