descriptor '__init__' requires a 'super' object but received a 'str
时间: 2024-09-30 11:05:25 浏览: 57
OpenSURF.zip_OpenSURF_SURF descriptor_descriptor_surf_zip
这个错误通常发生在Python中,当你尝试通过继承创建一个类的时候,如果`__init__`方法没有正确的调用父类的初始化方法(即`super().__init__(...)`),就会抛出这样的异常。`__init__`是一个特殊的方法,用于类的实例化,它期望一个`super`对象以便调用父类的构造函数。
例如:
```python
class Parent:
def __init__(self):
print("Parent init")
class Child(Parent):
# 如果这里忘记调用 super().__init__()
# descriptor '__init__' requires a 'super' object but received a 'str'
def __init__(self):
print("Child init")
```
在这个例子中,你需要修正`Child`类的`__init__`,添加对父类的初始化:
```python
class Child(Parent):
def __init__(self):
super().__init__() # 添加这行来调用父类的构造函数
print("Child init")
```
阅读全文