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

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

code


class grandfather():    #超类
    def __init__(self,name,age):
        self.name = name    #爷爷的属性
        self.age  = age
        self.height = 180    #爷爷特有的属性
    def plan(self):
        print("爷爷的计划是环游世界")
    
    def hobby(self):
        print("爷爷最喜欢浪遏飞舟")
    
class father(grandfather):   #父类
    def __init__(self,name,age):
        super().__init__(name,age)    #super主要用于集成父类的方法,就是他的上一辈
        self.name = name
        self.age  = age
    
    def diet(self):
        print("父亲最喜欢小鸡炖蘑菇")     
    def hobby(self):
        print("父亲最喜欢大美女")
    def amazing(self):
        super().plan()   #super其实就相当于一个类,代表的父辈,可以直接用它调用父辈的函数

class son(father):   #子类
    def __init__(self,name,age):
        super().__init__(name,age)      #super方法一般写在类的初始化__init__()的下面,当你实例化son时,他的父类的方法自然而然的继承了进来
        self.name = name
        self.age  = age

    def game(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了,不仅可以继承类方法,类属性同样可以继承




猜你喜欢

转载自blog.csdn.net/qzzzxiaosheng/article/details/122464125
今日推荐