以下将动物类动物定义为基础。它基本上是两个实例属性名称和年龄,以及一个方法调用。
注意:请确保使用Super(Cat,self).init(名称,年龄)来初始化父类。否则,将没有继承动物的猫子类继承的名称和年龄属性。。请注意,自我参数已在super().write self中传递。
注意:呼叫方法的顺序,当我们重建子类中的父级方法时,猫子类实例将首先在我们自己的类中找到该方法,当我们找不到此方法时,我们将去父亲。请在类中找到相应的方法。
子类与父亲-in -law之间的关系是“ IS”之间的关系。例如,猫在动物阶级中遗传,我们可以说:
“ A”是动物类的实例,但“ A”不是猫类的实例。
“ C”是动物类的一个实例,“ C”也是猫类的实例。
为了判断对象之间的关系,我们可以通过isInstance(变量,类型)进行判断:
输出结果:
扩展:isInstance()判断变量类型
函数isInstance()不仅可以在我们的自定义类中使用,还可以确定变量的类型,例如确定数据类型是否为int,str,list,dict,c。
输出:
该类具有继承关系,并且可以将子类型类型转换为父类型。如果我们从动物中衍生出猫和狗,我们都会写下一个呼叫()方法,如下:
我们定义do函数并接收一个变量“全部”,如下所示:
输出结果:
小知识:多态性
这种行为称为多态性。换句话说,该方法调用将对ALL.C的实际类型作用。C是一种猫类型,实际上具有其自己的调用方法()方法和从动物继承的呼叫方法,但请致电C.CALL C.CALL()始终找到自己的定义。直到在某个父级中找到它。
传递给函数的参数(全部)不一定是动物或动物的儿童类型。只要有一个呼叫方法()方法,数据类型都很好。也可以使用呼叫方法。这是动态语言,动态语言呼叫实例方法,而无需检查类型,只要该方法存在,参数是正确的,您就可以呼叫。
方法一:
影响:
方法两个:
原始:https://juejin.cn/post/7095247438960656420