由pytorch中的super().__init__到python中的测试

2023-09-12 14:40:32

最近看一些pytorch一些大佬写的代码太规范,一个类中套一个类,只会简单语法的小白表示一头雾水,自己编了一个小代码验证一下,不喜勿扰。

code

classgrandfather():#超类def__init__(self,name,age):
        self.name= name#爷爷的属性
        self.age= age
        self.height=180#爷爷特有的属性defplan(self):print("爷爷的计划是环游世界")defhobby(self):print("爷爷最喜欢浪遏飞舟")classfather(grandfather):#父类def__init__(self,name,age):super().__init__(name,age)#super主要用于集成父类的方法,就是他的上一辈
        self.name= name
        self.age= agedefdiet(self):print("父亲最喜欢小鸡炖蘑菇")defhobby(self):print("父亲最喜欢大美女")defamazing(self):super().plan()#super其实就相当于一个类,代表的父辈,可以直接用它调用父辈的函数classson(father):#子类def__init__(self,name,age):super().__init__(name,age)#super方法一般写在类的初始化__init__()的下面,当你实例化son时,他的父类的方法自然而然的继承了进来
        self.name= name
        self.age= agedefgame(self):print("儿子最喜欢和平精英")

zhen1= son("xiao_min",20)print(zhen1.name)#xiao_min            //测试儿子的属性
zhen1.game()#儿子最喜欢和平精英    // 测试儿子特有的方法
zhen1.hobby()#父亲最喜欢大美女      //测试儿子继承他父类的方法
zhen1.diet()#父亲最喜欢小鸡炖蘑菇   //测试儿子继承他父类的方法
zhen1.amazing()#爷爷的计划是环游世界   //儿子集成他父亲的amazing()方法,父亲又继承爷爷的plan()方法print(zhen1.height)#180                  //测试儿子类是否可以继承爷爷类的特有属性:可以
zhen1.plan()#爷爷的计划是环游世界   //测试儿子类是否可以直接继承爷爷类的方法:可以

zhen2= father("da_ming",40)
zhen2.hobby()#父亲最喜欢大美女           //测试父亲与爷爷有相同爱好时怎么办?-------因为zhen2是父亲类,所以父亲类优先
zhen2.plan()#爷爷的计划是环游世界       // 测试当父亲类没有plan()方法时怎们办:程序会一直往年龄大的方向即爷爷类上找print(zhen2.height)# 180                      //测试父亲类是否可以继承爷爷类的独有属性:身高------当然可以

zhen3= grandfather("lao_ming",90)#总之一句话,子类优先,子类没有是一直往年龄大的方向找,年龄大的也没就芭比Q了,不仅可以继承类方法,类属性同样可以继承
  • 作者:哈哈哈,冲冲冲
  • 原文链接:https://blog.csdn.net/qzzzxiaosheng/article/details/122464125
    更新时间:2023-09-12 14:40:32