typeerror: descriptor '__init__' of 'super' object needs an argument
时间: 2023-04-17 08:02:25 浏览: 76
这个错误提示是因为在使用 super() 函数时,没有传递必要的参数。在 Python 中,super() 函数用于调用父类的方法,但是需要传递两个参数:子类和子类的实例。如果没有传递这两个参数,就会出现这个错误。需要检查代码中是否正确使用了 super() 函数,并传递了正确的参数。
相关问题
TypeError: __init__() got an unexpected keyword argument 'fontstyle'
根据提供的引用内容,TypeError: __init__() got an unexpected keyword argument 'fontstyle' 是一个错误提示,意味着在调用 __init__() 函数时传入了一个意外的关键字参数 'fontstyle'。这个错误通常发生在使用某个类的构造函数时,传入了不被该类接受的参数。
以下是一个示例代码,演示了如何触发这个错误:
```python
class MyClass:
def __init__(self, name):
self.name = name
my_object = MyClass(name='John', fontstyle='bold')
```
在上述代码中,MyClass 类的构造函数 __init__() 只接受一个参数 name,但是在创建 my_object 对象时,传入了额外的参数 fontstyle。这将导致 TypeError: __init__() got an unexpected keyword argument 'fontstyle' 错误。
要解决这个错误,你可以检查代码中是否存在拼写错误或者不正确的参数传递。确保你正在调用正确的构造函数,并且传入的参数与构造函数的定义相匹配。
TypeError: __init__() got an unexpected keyword argument 'metaclass'
在Python中,当我们实例化一个类时,如果传递了未被识别的关键字参数,就会出现"TypeError: __init__() got an unexpected keyword argument"错误。这个错误通常是由于我们在实例化类时传递了不正确的参数导致的。例如,在示例代码中,我们尝试实例化 MyClass 类时,传递了一个未被识别的关键字参数 indices,导致了 "TypeError: init() got an unexpected keyword argument 'indices'" 错误。
而当出现"TypeError: __init__() got an unexpected keyword argument 'metaclass'"错误时,通常是由于我们在定义类时使用了不正确的语法或参数。在Python 3中,我们可以使用metaclass参数来指定类的元类。元类是用于创建类的类,它控制着类的创建过程。如果我们在定义类时使用了不正确的元类参数,就会出现"TypeError: __init__() got an unexpected keyword argument 'metaclass'"错误。
为了解决这个问题,我们需要检查我们在定义类时使用的元类参数是否正确,并确保只传递正确的关键字参数。如果我们不需要使用元类,可以省略metaclass参数。
以下是一个示例代码,演示了如何正确地定义类并避免出现"TypeError: __init__() got an unexpected keyword argument 'metaclass'"错误:
```python
class MyClass:
def __init__(self, name):
self.name = name
my_object = MyClass(name="example")
```