Python 多态性

Python 多态性

术语“多态性”指的是在不同上下文中采用不同形式的函数或方法。由于Python是一种动态类型语言,因此在Python中实现多态性非常容易。

如果在父类中的方法被不同的子类用不同的业务逻辑重写,则基类方法就是一个多态方法。

示例

以下是一个多态性示例,我们有一个抽象类shape,它作为两个类circle和rectangle的父类。这两个类以不同的方式重写了父类的draw()方法。

from abc import ABC, abstractmethod
class shape(ABC):
   @abstractmethod
   def draw(self):
      "Abstract method"
      return

class circle(shape):
   def draw(self):
      super().draw()
      print ("Draw a circle")
      return

class rectangle(shape):
   def draw(self):
      super().draw()
      print ("Draw a rectangle")
      return

shapes = [circle(), rectangle()]
for shp in shapes:
   shp.draw()

输出

当你运行这段代码时,会产生以下输出-

Draw a circle
Draw a rectangle

变量 shp 首先引用圆形对象并调用圆形类的draw()方法。在下一次迭代中,它引用矩形对象并调用矩形类的draw()方法。因此,shape类中的draw()方法是多态的。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程