python 虚函数
时间: 2023-07-07 21:11:45 浏览: 88
在 Python 中,虚函数通常指的是使用抽象基类(Abstract Base Class,简称 ABC)实现的抽象方法。抽象方法是指在基类中声明但是没有实现的方法,需要在子类中进行实现。在 Python 中,我们可以使用 abc 模块来定义抽象基类,其中 abc.ABCMeta 是一个元类,用于定义抽象基类。
下面是一个使用抽象基类实现虚函数的例子:
```python
from abc import ABCMeta, abstractmethod
class Shape(metaclass=ABCMeta):
@abstractmethod
def area(self):
pass
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def area(self):
return 3.14 * self.radius * self.radius
class Rectangle(Shape):
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
# 创建对象并调用虚函数
circle = Circle(5)
print("Circle area:", circle.area())
rectangle = Rectangle(4, 5)
print("Rectangle area:", rectangle.area())
```
在上面的例子中,我们定义了一个抽象基类 Shape,并在其中声明了一个抽象方法 area。我们还定义了两个子类 Circle 和 Rectangle,并在其中实现了 area 方法。注意,子类必须实现基类中的所有抽象方法,否则会抛出 TypeError 异常。
最后,我们创建了 Circle 和 Rectangle 的对象,并调用了它们的 area 方法,这里就体现了虚函数的概念:基类中定义的虚函数可以在子类中被重写实现,从而实现不同的功能。
阅读全文