举一个没有指针的例子
时间: 2024-09-30 15:15:40 浏览: 32
指针解释_使用客栈举例子
在Python中,你可以使用鸭子类型(Duck Typing)的概念,这是另一种形式的多态,它并不依赖于指针或者严格的继承机制,而是基于函数的预期行为。例如,考虑两个类,一个是`Animal`,另一个是`Flyer`,`Flyer`是`Animal`的一种:
```python
class Animal:
def make_sound(self):
pass
class Flyer(Animal):
def make_sound(self):
return 'Tweet!'
# 定义一个通用的feed函数,只需要接收能发出声音的对象
def feed(animal):
sound = animal.make_sound()
print(f'Feeding {animal}, it says "{sound}"')
# 创建实例
duck = Flyer() # 实际上是一个会飞的鸭子
turtle = Animal() # 一个不会飞的乌龟
# 调用feed函数,虽然turtle不是一个Flyer,但它仍然是一个Animal并且有一个make_sound方法
feed(turtle) # 输出 "Feeding <__main__.Animal object at 0x...>, it says """
feed(duck) # 输出 "Feeding <__main__.Flyer object at 0x...>, it says "Tweet!""
```
在这个例子中,`feed`函数并不关心传入对象的具体类型,只要对象有一个`make_sound`方法,就可以按照期望的方式操作。这就是Python中的“无指针”多态。
阅读全文