在python中子类和父类中都有构造方法,构造方法的执行顺序
时间: 2024-09-27 17:08:12 浏览: 54
在Python中,如果子类和父类都定义了构造方法(也称为初始化函数),那么会遵循特定的执行顺序规则:
1. **实例化优先于继承**:当你创建子类的实例时,首先会调用子类自身的构造方法(__init__),这是对新创建对象的一般初始化。
2. **继承链的上溯**:接着,Python会自动调用父类的构造方法,即使你在子类中没有显式地调用`super().__init__(...)`。这个过程是向上查找并调用父类的构造方法,直到最顶层基类(如果没有其他父类的话,通常是`object`类)。
所以,尽管子类有自己的构造方法,但在实例化过程中,会先执行子类的方法,然后是父类的方法,这个过程确保了父类的属性会被初始化。
```python
class Parent:
def __init__(self):
print(f"Parent init")
class Child(Parent):
def __init__(self):
print(f"Child init")
# 父类的构造方法会在这之后自动被调用
# 实例化时的执行顺序
child = Child()
# 输出结果:
# Child init
# Parent init
```
阅读全文