当前位置: 首页 > 网络应用技术

Python类分析,继承,重建和多态性解释

时间:2023-03-07 13:03:13 网络应用技术

  以下将动物类动物定义为基础。它基本上是两个实例属性名称和年龄,以及一个方法调用。

  注意:请确保使用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