请写一个复杂一点的例子
时间: 2024-03-25 09:38:01 浏览: 19
好的,下面是一个稍微复杂一些的例子,它展示了如何使用多继承来实现一个具有多种功能的类:
```python
# 第一个父类:计算器
class Calculator:
def add(self, x, y):
return x + y
def subtract(self, x, y):
return x - y
# 第二个父类:字符串操作
class StringManipulator:
def reverse(self, s):
return s[::-1]
def capitalize(self, s):
return s.upper()
# 第三个父类:文件操作
class FileManager:
def read(self, filename):
with open(filename, "r") as f:
return f.read()
def write(self, filename, data):
with open(filename, "w") as f:
f.write(data)
# 继承自三个父类的子类
class MyUtility(Calculator, StringManipulator, FileManager):
def do_something(self):
# 调用继承自 Calculator 的方法
print(self.add(1, 2)) # 输出 3
print(self.subtract(5, 3)) # 输出 2
# 调用继承自 StringManipulator 的方法
print(self.reverse("hello")) # 输出 olleh
print(self.capitalize("world")) # 输出 WORLD
# 调用继承自 FileManager 的方法
self.write("test.txt", "Hello, world!")
print(self.read("test.txt")) # 输出 Hello, world!
# 创建 MyUtility 的实例
obj = MyUtility()
# 调用它的方法
obj.do_something()
```
这个例子中,我们定义了三个父类:`Calculator`,`StringManipulator`,和`FileManager`。它们分别提供了计算、字符串处理和文件操作的方法。然后我们定义了一个子类`MyUtility`,它同时继承了这三个父类,从而具有了这三个父类的所有方法。最后我们创建了`MyUtility`的实例,并调用了它的`do_something`方法,这个方法又调用了继承自三个父类的方法,展示了多继承的强大功能。