麻烦详细讲解一下python中的super().__init__()
时间: 2023-07-16 14:16:26 浏览: 93
`super().__init__()` 是 Python 中用于调用父类构造方法的一种方法。它通常在子类的 `__init__()` 方法中使用,以确保父类的初始化代码得到正确执行。
在 Python 中,继承关系是通过类之间的关系来实现的。当子类被创建时,它会自动继承父类的所有属性和方法。但是,在子类中定义与父类同名的方法或属性时,子类会覆盖父类的同名方法或属性。如果我们希望在子类中调用父类中的同名方法,我们可以使用 `super()` 函数。
`super().__init__()` 的作用是调用父类的构造方法。当我们在子类的 `__init__()` 方法中调用 `super().__init__()` 时,Python 会自动查找子类的父类,并调用父类的 `__init__()` 方法。这样就可以确保父类的初始化代码得到正确执行。
下面是一个示例:
```python
class Parent:
def __init__(self, name):
self.name = name
print("Parent's init called")
class Child(Parent):
def __init__(self, name):
super().__init__(name)
print("Child's init called")
c = Child("Tom")
```
在上面的示例中,我们定义了一个父类 `Parent` 和一个子类 `Child`。在子类的构造方法中,我们调用了 `super().__init__()` 方法来调用父类的构造方法,并传递了 `name` 参数。这样,父类的初始化代码就被正确执行了。
当我们运行上面的代码时,输出结果如下:
```
Parent's init called
Child's init called
```
可以看到,首先输出了父类的初始化代码,然后才输出子类的初始化代码。这表明父类的构造方法被成功调用了。
阅读全文