调用示例:say_hi_multi_parameter('杜甫', '李白', '柳宗元', '李商隐')输出示例:杜甫,你好!李白,你好!柳宗元,你好!李商隐,你好!
时间: 2024-09-27 10:04:02 浏览: 6
在面向对象编程中,你可以创建一个通用的方法,它接受任意数量的对象作为参数,并通过多态让每个对象实例调用自己的特定行为。例如,假设有一个名为`Speaker`的抽象类,里面有一个`say_hello`的方法,然后有四个具体的子类`Poet1`, `Poet2`, `Poet3`, 和 `Poet4`,每个子类都实现了这个方法以适合他们的诗人身份。
下面是一个简单的调用示例:
```python
from abc import ABC, abstractmethod
class Speaker(ABC):
@abstractmethod
def say_hello(self, name):
pass
class Poet1(Speaker):
def say_hello(self, name):
return f"{name}, 你好!你是杜甫!"
class Poet2(Speaker):
def say_hello(self, name):
return f"{name}, 你好!你是李白!"
# 更多诗人类...
def say_hi_multi_parameter(*poets):
for poet in poets:
if isinstance(poet, Poet1):
print(poet.say_hello("杜甫"))
elif isinstance(poet, Poet2):
print(poet.say_hello("李白"))
# 其他诗人同理...
say_hi_multi_parameter(Poet1(), Poet2(), Poet3(), Poet4())
```
在这个例子中,当你传递不同的诗人对象给`say_hi_multi_parameter`函数时,它们会各自打印出对应诗人的问候语。