如果子类没有初始化函数,用super继承父类的初始化函数会怎么样
时间: 2023-12-21 20:04:08 浏览: 68
Python实现子类调用父类的初始化实例
如果子类没有显式定义 `__init__` 方法,那么它会继承父类的 `__init__` 方法。此时,可以使用 `super()` 函数来调用父类的 `__init__` 方法,以确保父类的初始化代码得到执行。
如果子类没有定义 `__init__` 方法,Python 会自动调用父类的 `__init__` 方法,这个调用是隐式的。因此,在这种情况下,使用 `super()` 函数和不使用 `super()` 函数的效果是相同的。
例如,假设有如下的父类 `Person` 和子类 `Student`:
```python
class Person:
def __init__(self, name):
self.name = name
print("Person initialized")
class Student(Person):
pass
```
在子类 `Student` 中没有定义 `__init__` 方法,因此它会继承父类 `Person` 的 `__init__` 方法。在创建 `Student` 对象时,会自动调用 `Person` 的 `__init__` 方法,输出 `Person initialized`。
```python
>>> s = Student("Tom")
Person initialized
>>> s.name
'Tom'
```
在子类中也可以定义自己的 `__init__` 方法,此时可以使用 `super()` 函数来调用父类的 `__init__` 方法,以确保父类的初始化代码得到执行。
阅读全文