phyphon虚函数
时间: 2024-06-18 16:03:28 浏览: 8
Python 是一种动态语言,没有 C++ 那样的“虚函数”概念。但是,Python 中可以通过定义抽象基类和实现多态来达到类似虚函数的效果。
在 Python 中,抽象基类是指一个只定义接口而不实现具体功能的类。Python 内置的 abc 模块提供了抽象基类的支持。使用抽象基类,可以定义一个接口,然后让子类去实现这个接口。这样,我们就可以在调用基类的方法时,让 Python 根据对象类型自动选择调用哪个子类的方法,实现多态。
下面是一个简单的示例代码:
```
from abc import ABC, abstractmethod
class Shape(ABC):
@abstractmethod
def area(self):
pass
class Square(Shape):
def __init__(self, side):
self.side = side
def area(self):
return self.side ** 2
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def area(self):
return 3.14 * self.radius ** 2
s = Square(5)
c = Circle(3)
print(s.area()) # 输出 25
print(c.area()) # 输出 28.26
```
在这个示例中,我们定义了一个抽象基类 Shape,其中定义了一个抽象方法 area。Square 和 Circle 是 Shape 的两个子类,它们都实现了 area 方法。在主程序中,我们创建了一个 Square 对象 s 和一个 Circle 对象 c,然后分别调用它们的 area 方法,由于 Python 的动态性,Python 会自动选择调用 Square 和 Circle 对象的 area 方法,从而实现多态。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)