python中一个类如何多继承
时间: 2023-10-23 16:17:44 浏览: 112
Python-python中一个简单的DynamoDBORM框架
在 Python 中,一个类可以通过多个父类来继承属性和方法,这就是多继承。方法如下:
```python
class Base1:
pass
class Base2:
pass
class MyClass(Base1, Base2):
pass
```
在上面的代码中,`MyClass` 继承了 `Base1` 和 `Base2` 两个父类。通过这种方式,`MyClass` 可以访问 `Base1` 和 `Base2` 类中定义的属性和方法。需要注意的是,当出现多个父类中有同名属性或方法时,解释器按照 MRO(Method Resolution Order)算法来确定调用顺序。
还有一种情况是通过 `super()` 函数来调用父类的方法,这时需要注意多继承的顺序问题,例如:
```python
class Base1:
def foo(self):
print('Base1.foo')
class Base2:
def foo(self):
print('Base2.foo')
class MyClass(Base1, Base2):
def foo(self):
super().foo()
c = MyClass()
c.foo() # 输出 Base1.foo
```
在上面的例子中,`MyClass` 继承了 `Base1` 和 `Base2` 两个父类,并且在 `MyClass` 中重写了 `foo()` 方法。在 `MyClass` 中调用 `super().foo()` 时,会按照 MRO 的顺序调用 `Base2` 类中的 `foo()` 方法,因为 `Base2` 在 `Base1` 之前被继承。
阅读全文